[LeetCode Python3] 103. Binary Tree Zigzag Level Order Traversal + 两种解法

it2023-08-01  75

103. Binary Tree Zigzag Level Order Traversal

S1:

# V1 class Solution: def zigzagLevelOrder(self, root: TreeNode) -> List[List[int]]: if not root: return None res, restmp = [], [] stack0, stack1 = [root], [] flag = True while stack0: tmp = stack0.pop() restmp.append(tmp.val) if flag: if tmp.left: stack1.append(tmp.left) if tmp.right: stack1.append(tmp.right) else: if tmp.right: stack1.append(tmp.right) if tmp.left: stack1.append(tmp.left) if not stack0: stack0 = stack1[:] stack1.clear() flag = not flag res.append(restmp[:]) restmp.clear() return res

S2:

class Solution: def zigzagLevelOrder(self, root: TreeNode) -> List[List[int]]: if not root: return None res, restmp = [], [] stack0, stack1 = [root], [] flag = True while stack0: for tmp in stack0: restmp.append(tmp.val) if tmp.left: stack1.append(tmp.left) if tmp.right: stack1.append(tmp.right) stack0 = stack1[:] stack1.clear() if not flag: restmp.reverse() flag = not flag res.append(restmp[:]) restmp.clear() return res
最新回复(0)