39 lines
770 B
Python
39 lines
770 B
Python
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) ) |