one line of code at a time
[leetcode] 101. Symmetric Tree 본문
leetcode 100.same tree가 자식 노드가 같은지를 판단하는 것이었다면,
이 문제는 left child가 right child와 같은지 보면 된다.
대칭인지 확인하기 위해서는 left subtree와 right subtree를 가지고 동시에 dfs를 돌려야 한다.
시간 복잡도는 O(n)이다. 여기서 n은 the number of node.
메모리 복잡도는 O(h)이고, h는 height of a tree.
class Solution:
def isSymmetric(self, root: Optional[TreeNode]) -> bool:
def dfs(left, right):
if not left and not right:
return True
if not left or not right:
return False
return ((left.val == right.val) and
dfs(left.left, right.right) and dfs(left.right, right.left))
return dfs(root.left, root.right)
'leetcode' 카테고리의 다른 글
| [leetcode] 802. Find Eventual Safe States 파이썬 코드 (2) | 2024.09.23 |
|---|---|
| [leetcode] 997. Find the Town Judge (0) | 2024.09.23 |
| [leetcode] 100. Same Tree (0) | 2024.09.19 |
| [leetcode] 94. Binary Tree Inorder Traversal (0) | 2024.09.18 |
| [leetcode] 2095. Delete the Middle Node of a Linked List 파이썬 코드 (0) | 2024.08.22 |