leetcode | 按层访问一棵二叉树 | Python
来源:互联网 发布:sublime json 格式化 编辑:程序博客网 时间:2024/05/17 02:01
题目:
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
For example:
Given binary tree [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its level order traversal as:
[ [3], [9,20], [15,7]]按层访问二叉树,并返回访问结果。
解题思路:
递归+广度优先(BFS)
每个递归中,先得到当前层的所有结点(now);通过当前层的结点得到数值,保存到结果中(res);然后根据当前层得到下一层的结点(next_term);
# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution(object): def levelOrder(self, root): #root是树的根节点 """ :type root: TreeNode :rtype: List[List[int]] """ if not root: return [] res = [] self.excute([root],res) return res def excute(self,now,res): #递归体,now是当前层的节点,next_term是下一层节点,res是保存得到的结果。 if not now: return tmp = [] #tmp 保存了当前层的数值 next_term = [] for one in now: tmp.append(one.val) if one.left: next_term.append(one.left) if one.right: next_term.append(one.right) res.append(tmp) self.excute(next_term,res)
阅读全文
0 0
- leetcode | 按层访问一棵二叉树 | Python
- 【二叉树2】逐层遍历一棵二叉树
- 二叉树的按层访问(非递归)
- 【Leetcode】判断一棵二叉树是不是平衡二叉树
- 【Leetcode】二叉树层遍历算法
- 第16题:层序遍历一棵二叉树
- 实现一棵二叉树的层序遍历
- 按层打印二叉树(出错搞了一下午)
- 分层访问二叉树的节点,每层换行
- 按层遍历二叉树
- 按层遍历二叉树
- 按层遍历二叉树
- 按层遍历二叉树
- 按层遍历二叉树
- 按层遍历二叉树
- 按层输出二叉树
- 按层打印二叉树
- 按层打印二叉树
- 网络偏好代理设置
- AR_ Vuforia _人物模块的旋转跟缩放
- codevs 1160 蛇形矩阵(较为复杂,待优化)
- 项目管理利器-maven
- servlet生命周期与/filter/listener/interceptor区别与联系
- leetcode | 按层访问一棵二叉树 | Python
- 计算机图形学----DDA、Bresenham直线算法
- jfinal 多数据源 Db+record 分页
- SetFileCompletionNotificationModes FILE_SKIP_COMPLETION_PORT_ON_SUCCESS
- 算法作业_37(2017.6.19第十八周)
- Android UI测试框架Espresso以及代码覆盖率jacoco的使用
- npm常用命令
- 接续符和转义符
- DPCM编解码