![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
Yobol2016
不积跬步无以至千里
展开
-
LeetCode 0144 -- 二叉树的前序遍历
二叉树的前序遍历题目描述给定一个二叉树,返回它的 前序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]解题思路个人AC迭代法/** * Definition for a binary tree node. * public class TreeNode { * int val;...原创 2019-12-14 23:01:58 · 112 阅读 · 0 评论 -
LeetCode 0114 -- 二叉树展开为链表
二叉树展开为链表题目描述解题思路个人AC将左子树放在右子树的位置,并将左子树置空;将原右子树放在原左子树的最右结点的右结点上;考虑新的右子树的根节点,重复上述过程,直到新的右子树为null。/** * Definition for a binary tree node. * public class TreeNode { * int val; * Tree...原创 2019-12-10 22:06:19 · 109 阅读 · 0 评论 -
LeetCode 0236 --二叉树的最近公共祖先
二叉树的最近公共祖先题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4][外链图片转存失败,源...原创 2019-12-07 23:11:51 · 135 阅读 · 0 评论 -
LeetCode 0230 -- 二叉搜索树中第k小的元素
二叉搜索树中第k小的元素题目描述给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 1示例 2:输入: root = [5,3,6,2,...原创 2019-12-06 17:27:01 · 147 阅读 · 0 评论 -
LeetCode 0235 -- 二叉搜索树的最近公共祖先
二叉搜索树的最近公共祖先题目描述给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 ...原创 2019-12-04 15:22:35 · 104 阅读 · 0 评论 -
LeetCode 0538 -- 把二叉搜索树转换为累加树
把二叉搜索树转换为累加树题目描述给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。例如:输入: 二叉搜索树: 5 / \ 2 13输出: 转换为累加树: 18...原创 2019-12-03 10:21:30 · 104 阅读 · 0 评论 -
LeetCode 0437 -- 路径总和III
路径总和III题目描述给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], s...原创 2019-12-02 14:31:27 · 121 阅读 · 0 评论 -
LeetCode 0226 -- 翻转二叉树
翻转二叉树题目描述翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1解题思路个人ACDFS/** * Definition for a binary tree node. * public cl...原创 2019-12-01 10:55:59 · 131 阅读 · 0 评论 -
LeetCode 0543 -- 二叉树的直径
二叉树的直径题目描述给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。示例:给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。解...原创 2019-11-23 14:44:21 · 124 阅读 · 0 评论 -
LeetCode 0124 -- 二叉树中的最大路径和
二叉树中的最大路径和题目描述给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例 2:输入: [-10,9,20,null,null,15,7] -10 / \ ...原创 2019-11-19 12:19:33 · 131 阅读 · 0 评论 -
LeetCode 0116 -- 填充每个节点的下一个右侧节点指针
填充每个节点的下一个右侧节点指针题目描述给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL...原创 2019-11-18 11:37:05 · 119 阅读 · 0 评论 -
LeetCode 0105 -- 从前序和中序遍历序列构造二叉树
题目描述解题思路个人AC/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Sol...原创 2019-11-18 10:28:35 · 121 阅读 · 0 评论 -
LeetCode 0108 -- 将有序数组转换为二叉搜索树
将有序数组转换为二叉搜索树题目描述将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 ...原创 2019-11-18 10:01:18 · 115 阅读 · 0 评论 -
LeetCode 0103 -- 二叉树的锯齿形层次遍历
二叉树的锯齿形层次遍历题目描述给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]解题...原创 2019-11-17 22:05:24 · 326 阅读 · 0 评论 -
LeetCode 0104 -- 二叉树的最大深度
二叉树的最大深度题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。解题思路个人AC/** * Definition for...原创 2019-11-17 21:29:19 · 105 阅读 · 0 评论 -
LeetCode 0101 -- 对称二叉树
对称二叉树题目描述给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3解题思路个人AC/** * D...原创 2019-11-17 14:03:43 · 141 阅读 · 0 评论 -
LeetCode 0094 -- 二叉树的中序遍历
二叉树的中序遍历题目描述给定一个二叉树,返回它的中序 遍历。输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?解题思路个人AC递归解法/** * Definition for a binary tree node. * public class TreeNode...原创 2019-11-17 14:01:56 · 107 阅读 · 0 评论 -
LeetCode 0098 -- 验证二叉搜索树
验证二叉搜索树题目描述给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 ...原创 2019-11-17 13:29:29 · 117 阅读 · 0 评论 -
LeetCode 0102 -- 二叉树的层次遍历
二叉树的层次遍历题目描述给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]解题思路个人AC/** * Definitio...原创 2019-11-16 01:58:13 · 105 阅读 · 0 评论