leetcode-python-二叉樹鋸齒形遍歷
阿新 • • 發佈:2021-06-16
逐層儲存結果,然後判斷奇數層反向。
# 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] returnresult