[LeetCode]Binary Tree Zigzag Level Order Traversal | zigzag层次遍历
Binary Tree Zigzag Level Order Traversal
class Solution(object):
def zigzagLevelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
if not root:
return []
res = []
deque1, deque2 = [root], []
while deque1 or deque2:
deque2 = []
if deque1:
res.append(list(map(lambda x:x.val, deque1)))
while deque1:
node = deque1.pop(0)
if node.left:
deque2.append(node.left)
if node.right:
deque2.append(node.right)
deque1 = []
if deque2:
res.append(list(reversed(map(lambda x:x.val, deque2))))
while deque2:
node = deque2.pop(0)
if node.left:
deque1.append(node.left)
if node.right:
deque1.append(node.right)
return res
关注公众号:数据结构与算法那些事儿,每天一篇数据结构与算法

浙公网安备 33010602011771号