剑指offer 二叉树的层序遍历
剑指offer 牛客网 二叉树的层序遍历
# -*- coding: utf-8 -*-
"""
Created on Tue Apr 9 09:33:16 2019 @author: Administrator
层序遍历:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
1
/ \
2 3
/ \ / \
4 5 6 7
返回列表:[1,2,3,4,5,6,7]
""" # -*- coding:utf-8 -*-
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
#层序遍历
def PrintFromTopToBottom(self, root):
# write code here
res,result = [],[]
if root: #非空节点,若空直接返回空
res.append(root) #先将头结点加入其中
i = 0
while True:
if res[i].left: #如果左节点非空将其加入
res.append(res[i].left)
if res[i].right: #同理,右节点非空将其加入
res.append(res[i].right)
i += 1
if i == len(res): #退出条件是当遍历到列表的长度时候退出
break
for i in res: #将节点的值加入到列表返回
if i: #返回非空节点的值
result.append(i.val)
return result if __name__ == '__main__':
solution = Solution()
node_left = TreeNode(4)
node_right = TreeNode(5)
root_left = TreeNode(2)
root_left.left = node_left
root_left.right = node_right node_left = TreeNode(6)
node_right = TreeNode(7)
root_right = TreeNode(3)
root_right.left = node_left
root_right.right = node_right root = TreeNode(1)
root.left = root_left
root.right = root_right res = solution.PrintFromTopToBottom(root)
print(res)
剑指offer 二叉树的层序遍历的更多相关文章
- 剑指Offer21 二叉树的层序遍历
/************************************************************************* > File Name: 21_PrintT ...
- 剑指Offer——二叉树
剑指Offer--二叉树 前言 数据结构通常是编程面试中考察的重点.在参加面试之前,应聘者需要熟练掌握链表.树.栈.队列和哈希表等数据结构,以及它们的操作.本片博文主要讲解二叉树操作的相关知识,主要包 ...
- JS数据结构与算法 - 剑指offer二叉树算法题汇总
❗❗ 必看经验 在博主刷题期间,基本上是碰到一道二叉树就不会碰到一道就不会,有时候一个下午都在搞一道题,看别人解题思路就算能看懂,自己写就呵呵了.一气之下不刷了,改而先去把二叉树的基础算法给搞搞懂,然 ...
- 剑指offer 二叉树中和为某一个值的路径
剑指offer 牛客网 二叉树中和为某一个值的路径 # -*- coding: utf-8 -*- """ Created on Tue Apr 9 15:53:58 2 ...
- 剑指offer 二叉树的后序遍历序列
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 思路:这题目有点特殊,主要在于序列为空的时候,不是 ...
- 剑指offer——二叉树的镜像
题目:操作给定的二叉树,将其变换为源二叉树的镜像. 思路:前序(根左右的顺序)遍历一棵树,在存储的时候将其左右树进行交换,最后按照处理后的树还原,即得到其镜像. /** public class Tr ...
- 《剑指offer》-中序遍历下一个节点
题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. /* struct TreeLinkNode { in ...
- 剑指Offer——二叉树的下一个结点
题目描述: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 分析: 如果该结点存在右子树,那么返回右子树的最左结 ...
- 剑指Offer——二叉树中和为某一值的路径
题目描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 分析: 先序遍历二叉树,找到二叉树中结点值的和 ...
随机推荐
- 利用PyMySQL库连接数据库
安装与准备 这是python3的库,所以windows下安装不会像python2那样各种奇葩VC错误.是比较方便的傻瓜安装. Windows平台下: py -3 -m pip install PyMy ...
- Django学习手册 - ORM 外键
Django 外键创建 关键语法: models.ForeignKey("UserGroup",to_field="gid",default=1,on_dele ...
- Thymeleaf在前台下拉列表获取后台传的值
Thymeleaf在前台下拉列表获取后台传的值 后台添加代码: /** * 新增机构 */ @GetMapping("/add") public String add(ModelM ...
- [转] 理解NLP中的卷积&&Pooling
转自:http://blog.csdn.net/malefactor/article/details/51078135 CNN是目前自然语言处理中和RNN并驾齐驱的两种最常见的深度学习模型.图1展示了 ...
- caffe调试
这里说一下关于如何进行Caffe的调试: 参考:https://blog.csdn.net/tsyccnh/article/details/51679121 简要说一下步骤: (1)首先对libcaf ...
- Python3学习笔记34-pymongo模块
pymongo模块是python操作mongo数据的第三方模块,记录一下自己常用到的简单用法. 首先需要连接数据库: MongoClient():该方法第一个参数是数据库所在地址,第二个参数是数据库所 ...
- http与中文编码传输
分类: http网络及RFC2012-08-12 15:01 3716人阅读 评论(0) 收藏 举报 urljavascript工具pythonimportjsp 关于http的RFC文档:http: ...
- 64位进程调用32位dll的解决方法 / 程序64位化带来的问题和思考
最近做在Windows XP X64,VS2005环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/C++代码),long类型的变化,最关键的 ...
- Power Network POJ - 1459 [网络流模板]
http://poj.org/problem?id=1459 嗯,网络流模板...多源点多汇点的图,超级汇点连发电厂,用户连接超级汇点 Status Accepted Time 391ms Memor ...
- TCP与UDP区别小结
TCP(Transmission Control Protocol):传输控制协议 UDP(User Datagram Protocol):用户数据报协议 主要从连接性(Connectiv ...