题解 | #按之字形顺序打印二叉树#

按之字形顺序打印二叉树

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届找工作求助阵地##我的实习求职记录#
全部评论

相关推荐

07-15 18:09
门头沟学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-18 18:30
点赞 评论 收藏
分享
流浪的神仙:无恶意,算法一般好像都得9硕才能干算法太卷啦
点赞 评论 收藏
分享
绝迹的星:前端和后端写两份简历, 如果想干全栈就直接写求职意向为全栈工程师
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务