引入 BST(二叉排序树) 一棵空树,或者是具有下列性质的二叉树: 若左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若右子树不空,则右子树上所有结点的值均大于它的根结点的值; 左、右子树也分别为二叉排序树; 没有键值相等的结点。 但是当插入数据有序时, BST会退化为一条链, 时间复杂度 ...
分类:
其他好文 时间:
2020-07-12 12:27:56
阅读次数:
53
给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定的有序链表: [-10, -3, 0, 5, 9], 一个可能的答案是:[0, -3, 9, -10, null, 5], ...
分类:
其他好文 时间:
2020-07-12 12:02:11
阅读次数:
59
给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回 true 。 示例 2: 给定二叉树 ...
分类:
其他好文 时间:
2020-07-12 12:00:04
阅读次数:
52
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉 ...
分类:
编程语言 时间:
2020-07-12 11:56:25
阅读次数:
58
C++小白所作...单纯记录一下自己刷力扣的学习心得 树_第4题:二叉树的层序遍历 题目描述: 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 举例: 示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 ...
分类:
编程语言 时间:
2020-07-12 01:05:35
阅读次数:
112
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例: 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 刚看到题目的时候觉得很简单,不就是递归计算左子树 ...
分类:
其他好文 时间:
2020-07-11 23:17:38
阅读次数:
88
前序遍历 先输出当前结点的数据,再依次遍历输出左结点和右结点 根结点 > 左子树 > 右子树 中序遍历 先遍历输出左结点,再输出当前结点的数据,再遍历输出右结点 左子树 > 根结点 > 右子树 DBEAFC 后序遍历 先遍历输出左结点,再遍历输出右结点,最后输出当前结点的数据 左子树 > 右子树 > ...
分类:
其他好文 时间:
2020-07-11 23:04:48
阅读次数:
66
直接上图 主要就是要记住 二分查找,主要用于在有序的数组里面查找对应的元素,时间复杂度为 O(nlogn) 二叉树遍历,时间复杂度为 O(n) 有序的二维矩阵查找,时间复杂度为 O(n) 归并排序,时间复杂度为 O(nlogn) ...
分类:
编程语言 时间:
2020-07-11 23:00:49
阅读次数:
80
题目描述 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一 ...
分类:
其他好文 时间:
2020-07-11 22:35:36
阅读次数:
74
问题描述 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下: [ [3], [20,9], [15 ...
分类:
其他好文 时间:
2020-07-11 21:22:39
阅读次数:
47