
树
lyd1995
这个作者很懒,什么都没留下…
展开
-
LeetCode98-验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 6输出: fa...原创 2019-04-08 10:12:43 · 151 阅读 · 0 评论 -
LeetCode129-求根到叶子节点数字之和
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1->2 代表数字 1...原创 2019-06-16 19:48:35 · 165 阅读 · 0 评论 -
LeetCode113-路径总和 II
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / ...原创 2019-06-11 09:11:16 · 135 阅读 · 0 评论 -
LeetCode112-路径总和
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 ...原创 2019-06-10 20:47:35 · 105 阅读 · 0 评论 -
LeetCode111-二叉树的最小深度
给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.一、思路这里的重点是要找根到叶的最短距离,因此必须一直往下寻找,直到遇到叶节点可以采...原创 2019-06-10 20:36:05 · 171 阅读 · 0 评论 -
LeetCode1080-根到叶路径上的不足节点
给定一棵二叉树的根 root,请你考虑它所有 从根到叶的路径:从根到任何叶的路径。(所谓一个叶子节点,就是一个没有子节点的节点)假如通过节点 node 的每种可能的 “根-叶” 路径上值的总和全都小于给定的 limit,则该节点被称之为「不足节点」,需要被删除。请你删除所有不足节点,并返回生成的二叉树的根。示例 1:输入:root = [1,2,3,4,-99,-99,7,8,9,-99...原创 2019-06-10 16:48:30 · 519 阅读 · 0 评论 -
LeetCode110-平衡二叉树
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4]...原创 2019-06-10 16:33:03 · 148 阅读 · 0 评论 -
LeetCode109-有序链表转换二叉搜索树
给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 ...原创 2019-06-06 11:12:55 · 196 阅读 · 0 评论 -
LeetCode108-将有序数组转换为二叉搜索树
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5...原创 2019-06-06 10:53:59 · 154 阅读 · 0 评论 -
LeetCode107-二叉树的层次遍历 II
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]一、思路(一)逆转层序遍历先使用层序遍历,...原创 2019-06-06 10:12:36 · 107 阅读 · 0 评论 -
LeetCode117-填充每个节点的下一个右侧节点指针 II
给定一个二叉树struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。示例:输入:{"$id":"1","left":{"$...原创 2019-06-12 16:56:26 · 136 阅读 · 0 评论 -
LeetCode114-二叉树展开为链表
给定一个二叉树,原地将它展开为链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1 \ 2 \ 3 \ 4 \ 5 \ 6一、思路为了将一颗二叉树展开,需要:展开该二叉树的左子树展开该二叉树的右子树将展开...原创 2019-06-12 16:42:49 · 110 阅读 · 0 评论 -
LeetCode116-填充每个节点的下一个右侧节点指针
给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置...原创 2019-06-12 16:40:07 · 133 阅读 · 0 评论 -
LeetCode105-从前序与中序遍历序列构造二叉树
根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7一、思路前序遍历中的第一个节点是根结点,第二个节点是左子树的根结点还是右子树的根...原创 2019-05-24 11:05:27 · 171 阅读 · 0 评论 -
LeetCode104-二叉树的最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。一、思路深度优先搜索(DFS)可以解决这个问题C++代码:class Solutio...原创 2019-05-17 11:03:09 · 115 阅读 · 0 评论 -
LeetCode103-二叉树的锯齿形层次遍历
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]一、思路因为是Z字形的,因此最先访问...原创 2019-05-17 09:48:36 · 152 阅读 · 0 评论 -
LeetCode102-二叉树的层次遍历
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]一、思路层序遍历可以使用队列来模拟,因为这里需要体现出层次感,所以使用两个队列...原创 2019-05-16 18:57:01 · 113 阅读 · 0 评论 -
LeetCode106-从中序与后序遍历序列构造二叉树
根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7一、思路思路与前序遍历很相似:LeetCode105-从前序与中序遍历序列构造...原创 2019-05-24 12:38:22 · 244 阅读 · 0 评论 -
LeetCode144-二叉树的前序遍历
给定一个二叉树,返回它的 前序 遍历。一、思路递归法就不必说了,直接上非递归。利用栈的特点,依次保存右孩子、左孩子。C++代码:class Solution {public: vector<int> ans; vector<int> preorderTraversal(TreeNode* root) { if (!root) return ans;...原创 2019-06-30 19:59:42 · 108 阅读 · 0 评论