https://leetcode.com/problems/invert-binary-tree/
Invert Binary Tree - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
풀이 과정
모든 노드의 왼쪽 자식 노드와 오른쪽 자식 노드를 바꾸는 문제이다.
DFS 혹은 BFS로 트리의 노드들을 순회하면서, 왼쪽 자식노드와 오른쪽 자식노드를 변경해주면 된다.
소스 코드
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
if root:
root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)
return root
return None
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
Q = collections.deque([root])
while Q:
node = Q.popleft()
if node:
node.left, node.right = node.right, node.left
Q.append(node.left)
Q.append(node.right)
return root
'알고리즘 문제 풀이 > 리트코드' 카테고리의 다른 글
LeetCode - 297. Serialize and Deserialize Binary Tree [Python] (0) | 2022.08.31 |
---|---|
LeetCode - 617. Merge Two Binary Trees [Python] (0) | 2022.08.29 |
LeetCode - 687. Longest Univalue Path [Python] (0) | 2022.08.29 |
LeetCode - 543. Diameter of Binary Tree [Python] (0) | 2022.08.28 |
LeetCode - 104. Maximum Depth of Binary Tree [Python] (0) | 2022.08.28 |