题解 | #按之字形顺序打印二叉树#
按之字形顺序打印二叉树
https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0
import re # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param pRoot TreeNode类 # @return int整型二维数组 # from collections import deque class Solution: def Print(self, pRoot: TreeNode) -> List[List[int]]: # write code here if pRoot == None: return [] queue = deque() layer = 0 queue.append(pRoot) l=[] while len(queue) != 0: size = len(queue) row = [] for i in range(size): if layer % 2 == 0: # 顺序 curr = queue.popleft() row.append(curr.val) if curr.left: queue.append(curr.left) if curr.right: queue.append(curr.right) else: # 倒叙 curr = queue.pop() row.append(curr.val) # print(row) if curr.right: queue.appendleft(curr.right) if curr.left: queue.appendleft(curr.left) l.append(row) layer +=1 return l
注意appendleft,pop,popleft函数结合使用
reverse(quene),len(queue)、copy.copy(d)、copy.deepcopy(d)都可以用
#我的实习求职记录#实习算法题题解 文章被收录于专栏
实习算法题