반응형
이번 문제는 2개의 tree를 인자로 받아 같은지 체크하는 문제입니다.
Tree의 경우 문제에서 아래와 같은 클래스로 정의하고 있습니다.
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
저의 경우에는 아래와 같은 로직을 재귀를 통해 완전 탐색하도록 하여 문제를 풀었습니다.
0. 2개의 현재 focus되고 있는 노드 객체가 맞는지 체크
1. 현재 값이 같은지 체크
2. 왼쪽 노드 체크
3. 오른쪽 노드 체크
코드는 아래와 같습니다.
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
if p == q == None: return True
elif p == None or q == None: return False
return (p.val == q.val and self.isSameLeftRight(p.left, q.left) and self.isSameLeftRight(p.right, q.right))
def isSameLeftRight(self, p: TreeNode, q: TreeNode):
if p == q == None: return True
elif p == None or q == None: return False
else: return (p.val == q.val and self.isSameLeftRight(p.left, q.left) and self.isSameLeftRight(p.right, q.right))
감사합니다.
반응형
'Algorithm > DataStructure' 카테고리의 다른 글
leetcode - Tree - Maximum Depth of Binary Tree (0) | 2020.03.24 |
---|---|
leetcode - Tree - Symmetric Tree (0) | 2020.03.23 |
leetcode -Stack - Remove All Adjacent Duplicates In String (0) | 2020.03.16 |
leetcode - Stack - Min Stack (1) | 2020.03.13 |
leetcode - Stack - Valid Parentheses (0) | 2020.03.13 |