LeetCode刷题笔记——366. Find Leaves of Binary Tree

题目描述:
给你一棵完全二叉树,请按以下要求的顺序收集它的全部节点:
依次从左到右,每次收集并删除所有的叶子节点
重复如上过程直到整棵树为空
示例:
输入: [1,2,3,4,5]
在这里插入图片描述
输出: [[4,5,3],[2],[1]]
解释:
删除叶子节点 [4,5,3] ,得到如下树结构:
1/ 2
现在删去叶子节点 [2] ,得到如下树结构:1
现在删去叶子节点 [1] ,得到空树:[]

题解代码

class Solution:
    def findLeaves(self, root: TreeNode) -> List[List[int]]:
	    res=[]
        #递归遍历二叉树 同时标记叶子节点的等级 
        def mfind(r):
            if not r:
                return 0
            else:
                lev_l=mfind(r.left)
                lev_r=mfind(r.right)
                level=max(lev_l,lev_r)
                if len(res)==level:
                    res.append([])
                res[level].append(r.val)
            return level+1
            
        mfind(root)
        return res
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值