Skip to content

Latest commit

 

History

History
39 lines (36 loc) · 1.09 KB

103.-binary-tree-zigzag-level-order-traversal.md

File metadata and controls

39 lines (36 loc) · 1.09 KB

103. Binary Tree Zigzag Level Order Traversal

# 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 zigzagLevelOrder(self, root: TreeNode) -> List[List[int]]:
        
        ## 话说 最简单的层次遍历完... 
        ## 然后奇偶 翻转 
        ## 但是...这么做 肯定不是这题本意
        ans = []
        if not root: return ans
        q = collections.deque()
        q.append(root)
        depth = 0
        while q:
            ls = len(q)
            level = []
            depth += 1
            for _ in range(ls):
                node = q.popleft()
                level.append(node.val)
                if node.left:
                    q.append(node.left)
                if node.right:
                    q.append(node.right)
            if level:
                if depth & 1:
                    ans.append(level)
                else:
                    ans.append(level[::-1])
        return ans