1. 程式人生 > 其它 >leetcode-python-二叉樹鋸齒形遍歷

leetcode-python-二叉樹鋸齒形遍歷

逐層儲存結果,然後判斷奇數層反向。

# 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]]:
        
if not root: return [] temp = [root] result = [[root.val]] while temp: length = len(temp) tempVal = [] for _ in range(length): head = temp.pop(0) if head.left: temp.append(head.left) tempVal.append(head.left.val)
if head.right: temp.append(head.right) tempVal.append(head.right.val) if tempVal != []: result.append(tempVal) for i in range(len(result)): if i % 2 != 0: result[i] = result[i][::-1] return
result