线索二叉树(找前驱/后继) 建立线索的初衷就是为了在一个结点中能够更方便找到前驱结点和后继结点。 中序线索二叉树 先序线索二叉树 后序线索二叉树 中序线索二叉树找中序后继 //找到以p为跟的子树中,第一个被中序遍历的结点 ThreadNode *Firstnode(ThreadNode *p){ / ...
分类:
其他好文 时间:
2020-06-28 12:47:39
阅读次数:
107
1. 题目 给定一棵二叉树的头节点head,完成二叉树的先序、中序和后序遍历。要求时间复杂度为O(N),额外空间复杂度为O(1) 2. 思路 常规的遍历二叉树的思路是递归和非递归的解法,但是这两种解法都不能做到额外空间复杂度为O(1)。 首先来看普通的递归和非递归解法,导致它们空间复杂度高的原因是使 ...
分类:
其他好文 时间:
2020-06-25 23:51:14
阅读次数:
123
二叉树求深度 题目描述 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7], 来源:力扣(LeetCode) 链接:https://leetcode-cn ...
分类:
其他好文 时间:
2020-06-25 21:31:15
阅读次数:
65
二叉树广度优先遍历:一层一层 二叉树深度优先遍历:前序(根左右)、中序(左根右)、后序(左右根) class Node(): def __init__(self, item): self.item = item self.left = None self.right = None class Tre ...
分类:
其他好文 时间:
2020-06-24 23:53:15
阅读次数:
105
二叉树概念 二叉树:每个节点最多有两个子节点 满二叉树:深度为K,有2^k-1个节点 完全二叉树:满二叉树属于完全二叉树,最后一层可满可不满,不满只可右部分缺失,其余层是满的 平衡二叉树:一棵空树或者左右子树的高度差的绝对值不能超过1 二分查找树:左子树节点的值比该节点的值小,右子树节点的值比该节点 ...
分类:
其他好文 时间:
2020-06-24 11:56:36
阅读次数:
58
根据前序和中序,使用JavaScript编写代码得到二叉树 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initia ...
分类:
编程语言 时间:
2020-06-24 00:43:53
阅读次数:
165
图论习题整理 求先序排列 需要知道树的遍历方法,分别前中后序,代表着先访问根节点,左子树,右子树,或是左中右,或是左右中 现在给同一棵树的中后两个序列,求前序, 首先清楚这样的性质: 1.对于某个树(无论是子树还是本体,只要是棵完整的树就行),其前序遍历序列的第一个节点肯定是它的根,就是对于节点,其 ...
分类:
其他好文 时间:
2020-06-21 09:25:27
阅读次数:
59
拨云见日的一周。 Algorithm: 104:Maximum Depth of Binary Tree(Easy) 树的很多问题首先考虑遍历,几种前中后序遍历只是打印时机不同,实际都是一样的 DFS,此外 DFS 也可以不用递归,手动使用栈结构模拟,最后还可以使用 BFS,借助 queue 优先处 ...
分类:
其他好文 时间:
2020-06-21 00:05:54
阅读次数:
51
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树: 5 / \ 2 6 / \ 1 3示例 1: 输入: [1,6,3,2,5]输出: false示例 2: 输入: [1,3, ...
分类:
其他好文 时间:
2020-06-19 14:14:45
阅读次数:
59
树的第一部分(数据结构之树(Tree)(一)_树的基础)介绍了树的各个基础:什么是树、树的特点、树的表示方法、树的种类、树在存储结构中的表示、树/森林/二叉树之间的转换(原理)等。 这部分主要介绍下二叉树的创建及遍历(一种实现,主要了解二叉树遍历的过程)。遍历是二叉树重要的运算,是其他运算的基础。树 ...
分类:
其他好文 时间:
2020-06-18 01:34:38
阅读次数:
53