题解 | #按之字形顺序打印二叉树#
按之字形顺序打印二叉树
https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param pRoot TreeNode类 # @return int整型二维数组 # import queue class Solution: def Print(self , pRoot: TreeNode) -> List[List[int]]: # write code here # 先创建最终结果的存放地点,头节点的复制结点 res = [] head = pRoot # 如果为空树,那么直接返回空 if not head: return res # 设置一个遍历,记录奇偶层 flag = True # 用队列保存每一层的值 duilie = queue.Queue() duilie.put(head) # 遍历整个树,直到队列为空 while duilie.qsize() != 0: # 保存当前层次的值 dangqian = [] # 设置一个遍历,记录奇偶层 flag = not flag # 当前队列(该层次的长度) n = duilie.qsize() for i in range(n): # 当前访问队列结点出队 q = duilie.get() # 将当前结点的值保存下来 dangqian.append(q.val) # 如果左右孩子存在,则保存下来作为下一层次 if q.left: duilie.put(q.left) if q.right: duilie.put(q.right) # 判断要不要反转 if flag == True: dangqian = dangqian[::-1] res.append(dangqian) return res#23届找工作求助阵地##我的实习求职记录#