本文主要是介绍[算法导论] 103. 二叉树的锯齿形层序遍历,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
0.题目
1. 双端队列
class Solution:def zigzagLevelOrder(self, root: TreeNode) -> List[List[int]]:if not root:return []c=1res = []parent = deque()parent.append(root)while parent: # 结点入数组tmp = []l = len(parent)for i in range(l):# print(parent)if c==1: #顺序p = parent.popleft()tmp.append(p.val)if p.left: parent.append(p.left) #加在后面if p.right: parent.append(p.right)else:p = parent.pop() #默认弹出最后一个元素tmp.append(p.val)if p.right: parent.appendleft(p.right) #加在左边if p.left: parent.appendleft(p.left)res.append(tmp)c*=-1return res
这篇关于[算法导论] 103. 二叉树的锯齿形层序遍历的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!