把二叉树打印成多行,也是基于bfs的例子

同理bfs操作,只是对树进行遍历时,多记录level信息,方便后续整理。

Next: 需要往优化思考,单纯的解决已不再适合

class Solution:
    def Print(self , pRoot: TreeNode) -> List[List[int]]:
        # write code here
        if not pRoot: return None
        i = 0
        nodes = [[1, pRoot.val, pRoot]]
        while i < len(nodes):
            level = nodes[i][0]
            node = nodes[i][2]
            if node.left:
                nodes.append([level+1, node.left.val, node.left])
            if node.right:
                nodes.append([level+1, node.right.val, node.right])
            i+=1
        res = []
        for n in nodes:
            if n[0] == len(res):
                res[-1].append(n[1])
            else:
                res.append([n[1]])
        return res

全部评论

相关推荐

本2硕9,秋招不想努力海投了
小何和:行情再不好也不可能拒绝你,不可能只要双9的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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