Given a binary tree, return the zigzag level order traversal of its nodes’ values. (ie, from left to right, then right to left for the next level and alternate between).
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None
classSolution(object): defzigzagLevelOrder(self, root): defdfs(root, level, left2right): if root isNone: return ; if level == len(result): result.append([]) if left2right isTrue: result[level].append(root.val) else: result[level].insert(0, root.val) if root.left: dfs(root.left, level+1, not left2right) if root.right: dfs(root.right, level+1, not left2right) result = [] dfs(root, 0, True) return result