leetcode_gym/_code/dfs/binaryTreeZigZagDFS.py

39 lines
770 B
Python
Raw Normal View History

class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def zigzagLevelOrder(root):
output = []
def dfs(node, level, output):
if not node:
return
if len(output) <= level:
output += [[]]
dfs(node.left, level+1, output)
dfs(node.right, level+1, output)
if level%2==0:
output[level].append(node.val)
else:
output[level].insert(0, node.val)
dfs(root, 0, output)
return output
root = TreeNode(3)
root.left = TreeNode(9)
root.right = TreeNode(20)
root.right.left = TreeNode(15)
root.right.right = TreeNode(7)
print( zigzagLevelOrder(root) )