加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

【python-leetcode107-树的宽度遍历】二叉树的层次遍历Ⅱ

发布时间:2020-12-20 09:54:51 所属栏目:Python 来源:网络整理
导读:问题描述: 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 ? [3,9,20,null,15,7] , 3 / 9 20 / 15 7 返回其自底向上的层次遍历为: [ [15,7],[9,20],[3]] # Definit

问题描述:

给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

例如:
给定二叉树?[3,9,20,null,15,7],

    3
   / 
  9  20
    /  
   15   7

返回其自底向上的层次遍历为:

[
  [15,7],[9,20],[3]
]

# Definition for a binary tree node.
# class TreeNode:     def __init__(self,x):         self.val = x         self.left = None         self.right = None

class Solution:
    def levelOrderBottom(self,root: TreeNode) -> List[List[int]]:
        if not root:
            return []
        stack=[root]
        res=[]
        while stack:
            tmp=[]
            for i in range(len(stack)):
                t=stack.pop(0)
                tmp.append(t.val)
                if t.left:
                    stack.append(t.left)
                 t.right:
                    stack.append(t.right)
            res.insert(0,tmp)
        return res

与之前层次遍历一致,之后最后每次将tmp插入到res的首位即可。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读