剑指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——二叉树中和为某一值的路径
题目描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 分析: 先序遍历二叉树,找到二叉树中结点值的和 ...
随机推荐
- Python的集合和元组
一.元组 元组也是一个list,但它的值不能改变 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号 ...
- iframe标签
转载文章:Web前端之iframe详解 iframe基本内涵 通常我们使用iframe直接在页面嵌套iframe标签指定src就可以了. <iframe src="demo_ifram ...
- super和this的区别
this.:this加点指此时代表当前对象,能操作当前类里面的所有属性及方法以及父类继承而来能被访问修饰符允许的属性和方法.super.:此时指代当前对象类的父类对象部分,不能操作到本类的属性和方法, ...
- 基于html2canvas实现网页保存为图片及图片清晰度优化
一.实现HTML页面保存为图片 1.1 已知可行方案 现有已知能够实现网页保存为图片的方案包括: 方案1:将DOM改写为canvas,然后利用canvas的toDataURL方法实现将DOM输出为包含 ...
- Akka Quickstart with Java-笔记
官方文档: http://developer.lightbend.com/guides/akka-quickstart-java/?_ga=2.177525157.1012573474.1504767 ...
- Java基础6-多态;匿名内部类;适配器模式
昨日内容回顾 类成员 构造函数:和类同名,没有返回值,可以重载 this(),super() 成员变量: 成员函数: 静态代码块:类加载执行 {}:构造代码块 interface 所有方法都是抽象的 ...
- 初次认识dedecms和帝国cms内容管理系统
近乎完美的内容模块管理 强大的内容管理系统,细致入微 其原理都是 先建立一个 模板系统 然后动态生成静态页面 注意各个板块和栏目的设置 在迁移网站的时候 尤其需要注意的是 系统参数的 根目录 需要及 ...
- ES--01
ES概念: 垂直搜索(站内搜索) 什么是全文检索和Lucene? 1 全文检索 倒排索引 2 Lucene 就是一个jar包 里面包含了封装好的各种简历倒排索引 以及进行搜索的代码 包括各种算法 我们 ...
- PHP导入导出csv文件 Summer-CSV
2017年11月9日09:25:56 根据项目实践总结的一个类文件, mac/win下没乱码 简体中文 默认从gb2312转到utf-8 https://gitee.com/myDcool/PHP-C ...
- 转-C语言中.h和.c文件解析
C语言中.h和.c文件解析(很精彩) 简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词 ...