剑指offer:把二叉树打印成多行(Python)

本文介绍了一种按层打印二叉树的方法,通过列表存储每一层节点,并依次读取和存储下一层节点,实现从上到下、从左至右的层次遍历。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

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

解题思路

给定一个二叉树样例:
这里写图片描述
以上图的二叉树样例来说,需要说明的点是,题目需要的输出是形如[[1], [2,3], [4,5,6,7]]。因为之前做了这种题型的初级版本和高级版本,面对这道中级版本,就比较顺水推舟了,本文末尾将给出这种题型的三种不同难度的链接。
简单表述一下解题思路:利用列表存储二叉树每一层的节点,在读取列表中当前层节点的同时,存储下一层的节点以备用,以此类推。

Python代码

def Print(self, pRoot):
    if not pRoot:
        return []
    resultList = []
    curLayer = [pRoot]
    while curLayer:
        curList = []
        nextLayer = []
        for node in curLayer:
            curList.append(node.val)
            if node.left:
                nextLayer.append(node.left)
            if node.right:
                nextLayer.append(node.right)
        resultList.append(curList)
        curLayer = nextLayer
    return resultList
顺序打印二叉树节点:初级版本
顺序打印二叉树节点:中级版本(当前页)
顺序打印二叉树节点:高级版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值