Leetcode 검지 Offer 32 - III. 두 갈래 나무 위에서 아래로 인쇄 III

5561 단어 Leetcode

Leetcode 검지 Offer 32 - III. 두 갈래 나무 위에서 아래로 인쇄 III


1 제목 설명 (Leetcode 제목 링크)


  는 함수를 지그재그 순서에 따라 두 갈래 나무를 인쇄합니다. 즉, 첫 번째 줄은 왼쪽에서 오른쪽으로 인쇄하고, 두 번째 줄은 오른쪽에서 왼쪽으로 인쇄하고, 세 번째 줄은 왼쪽에서 오른쪽으로 인쇄합니다. 다른 줄은 이와 같이 추정됩니다.
    3
   / \
  9  20
    /  \
   15   7
[
  [3],
  [20,9],
  [15,7]
]

팁: 노드 총 수 <= 1000

2 문제풀이


노루층계
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def levelOrder(self, root: TreeNode) -> List[List[int]]:
        if not root:
            return []
        res = []
        queue = collections.deque([root])
        tag = 0
        while queue:
            cur = []
            num = len(queue)
            while num:
                num -= 1
                node = queue.popleft()
                cur.append(node.val)
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
            if tag: 
                cur = cur[::-1]
            tag ^= 1
            res.append(cur)
        return res


좋은 웹페이지 즐겨찾기