题目描述

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。#类似于二维列表[[1,2],[4,5]]

解题思路

其实这倒题和其他类似的题有所区别,这里是分层打印,把每层的节点值放在同一个列表,然后再放到一个大列表里面;

那么关键就在于怎样把每层的节点值从左到右依次取出来?有一个办法,就是把当前层的所有节点的全部子节点都存到一个列表中(这个列表每次都要更新),只要遍历这个列表,取出值就可以了

代码

class Solution:
    # 返回二维列表[[1,2],[4,5]]
    def Print(self, pRoot):
        # write code here
        result = []
        nodeList = []
        if pRoot == None:return result
        nodeList.append(pRoot)
        while nodeList:
            result_layer = []
            nextLayernodeList = []
            for node in nodeList:
                result_layer.append(node.val)
                if node.left:nextLayernodeList.append(node.left)
                if node.right:nextLayernodeList.append(node.right)
            nodeList = nextLayernodeList
            result.append(result_layer)
        return result

nodeList存放当前层的节点;nextLayernodeList存放下一层的节点;result_layer存放当前层的节点值

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-06
  • 2022-12-23
  • 2022-12-23
  • 2021-08-12
  • 2021-07-27
  • 2021-10-13
猜你喜欢
  • 2021-12-17
  • 2021-06-20
  • 2022-12-23
  • 2021-10-29
  • 2021-12-09
  • 2021-10-15
  • 2022-02-04
相关资源
相似解决方案