DFS 기초. 재귀 구조 만들기(Leetcode #965)

송진수·2021년 6월 27일
1

Q)

이진트리의 모든 노드 값이 같다면 True, 다른 값이 존재한다면 False를 출력하라.

Ex)

[1,1,1,1,1,None,1]   =>   True
[2,2,2,5,2]          =>	  False

Sol)

가장 기본적인 DFS로, root부터 leaf까지 탐색하여 노드값을 리스트에 추가 후, 리스트를 집합으로 변환시켜 원소가 1개인지 확인하여 Bool값을 반환한다.

# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
def isUnivalTree(self, root):
        vals = []

        def dfs(node):
            if node:
                vals.append(node.val)
                dfs(node.left)
                dfs(node.right)

        dfs(root)
        return len(set(vals)) == 1
profile
보초

0개의 댓글