剑指Offer_编程题60:把二叉树打印成多行

题目:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

牛客网:链接

利用列表存储二叉树每一层的节点,在读取列表中当前层节点的同时,存储下一层的节点以备用,以此类推。

简单版:剑指Offer_编程题22:从上往下打印二叉树

中级版:当前页

高级版:剑指Offer_编程题59:按之字顺序打印二叉树

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    # 返回二维列表[[1,2],[4,5]]
    def Print(self, pRoot):
        # write code here
        if not pRoot:
            return []

        curstack = [pRoot]
        result = []

        while curstack:
            res = []
            nextstack = []
            for i in curstack:
                res.append(i.val)
                if i.left:
                    nextstack.append(i.left)
                if i.right:
                    nextstack.append(i.right)
            curstack = nextstack
            result.append(res)

        return result

猜你喜欢

转载自blog.csdn.net/mengmengdajuanjuan/article/details/82946785