数据结构
小小绵羊
这个作者很懒,什么都没留下…
展开
-
leedcode
本节只写自己做的leedcode,只是用来当笔记,里面记录的方法有自己想的,也有来自各位大神的思路1.重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:限制:0 <= 节点个数 <= 5000思路:思路详细步骤地址# Definition for a binary原创 2020-08-15 09:45:28 · 1072 阅读 · 0 评论 -
二叉树的后序遍历(递归和非递归)
#二叉树的后序遍历后序遍历(LRD)是二叉树遍历的一种,也叫做后根遍历、后序周游,记为左右根,简记:左右根。步骤(非递归):⼆叉树的后序遍历顺序是左-右-根。在这里仍然采用棧来进行辅助,具体步骤如下:1、把⼆叉树的根节点 root 放进栈。2、如果栈不为空,从栈中取出⼀个节点,把该节点插⼊到容器的头部。如果该节点的左⼦树不为空,则把该左⼦树放⼊栈中;如果该节点的右⼦树不为空,则把右⼦树放⼊栈中。注意,之前的前序遍历和中序遍历,我们都是⽤ ArrayList 容器,并且是把节点插⼊到容器的尾部,原创 2020-05-12 14:34:22 · 1276 阅读 · 0 评论 -
二叉树的中序遍历
二叉树的中序遍历前一篇文章中已经写过二叉树的先序遍历了,这一篇我们继续探究二叉树的中序遍历。中序遍历(LDR)是二叉树树中遍历的一种,也称之为中根遍历、中序周游。在二叉树中,先左后根再右。记为:左根右。该完全二叉树中序遍历的结果为:7, 3, 8, 1, 9, 4, 0, 5, 2, 6⼆叉树的中序遍历顺序是左-根-右。采⽤⼀个栈来辅助,我们把中序遍历的结果放到⼀个ArrayList 容器中作为返回值,具体步骤如下:1、进⼊ while 循环,接着把根节点及其所有左⼦节点放⼊栈中。2、遍历完左原创 2020-05-10 16:30:29 · 2083 阅读 · 0 评论 -
二叉树的先序遍历
二叉树的概念二叉树是一种特殊的树。二叉树的特点是每个节点最多有两个儿子,左边的叫左二子,右边的叫做右儿子,或者说每个结点最多有两棵子树,二叉树要么为空,要么由根节点、左子树和右子树组成,而左子树和右子树分别是一颗二叉树.二叉树有两种比较特殊的树叫做满二叉树和完全二叉树。如果二叉树中国每个内部节点都有两个儿子,这样的二叉树叫做满二叉树。如果一个二叉树除了最右边位置上有一个或者几个叶结点缺少外,其他都是丰满的,那么这样的二叉树就是完全二叉树,严格的定义是:若二叉树的高度为h,除了第h层以外,其他的各层(1~h原创 2020-05-10 15:40:09 · 4051 阅读 · 0 评论