![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
Jessio
这个作者很懒,什么都没留下…
展开
-
leetcode习题集——103. 二叉树的锯齿形层次遍历
题目给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。算法public class P103 { public List<List<Integer>> zigzagLevelOrder(TreeNode root) { List<List<Integer>...原创 2019-06-12 15:29:32 · 190 阅读 · 0 评论 -
leetcode习题集——129. 求根到叶子节点数字之和
题目给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3]1/ 2 3输出: 25解释:从根到叶子节点路径 1->2 代表数字 12.从根到...原创 2019-06-23 15:15:29 · 109 阅读 · 0 评论 -
leetcode习题集——116. 填充每个节点的下一个右侧节点指针
题目给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node {int val;Node *left;Node *right;Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL...原创 2019-06-17 11:37:44 · 221 阅读 · 0 评论 -
leetcode习题集——102. 二叉树的层次遍历
题目给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7],算法public class P102 { /** * 层序遍历 * 递归 */ public List<List<Integer>> levelOrder(Tree...原创 2019-06-11 15:46:05 · 511 阅读 · 0 评论 -
leetcode习题集——101. 对称二叉树
题目给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:算法public class P101 { public boolean isSymmetric(TreeNode root) { return check(root,root); ...原创 2019-06-11 14:49:24 · 115 阅读 · 0 评论 -
leetcode习题集——114. 二叉树展开为链表
题目给定一个二叉树,原地将它展开为链表。例如,给定二叉树将其展开为:算法public class P114 { public void flatten(TreeNode root) { convertNode(root,null); return; } private TreeNode convertNode(TreeNode...原创 2019-06-15 10:48:17 · 140 阅读 · 0 评论 -
leetcode习题集——113. 路径总和 II
题目给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1...原创 2019-06-15 10:10:51 · 102 阅读 · 0 评论 -
leetcode习题集——112. 路径总和
题目给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 ...原创 2019-06-15 10:05:33 · 106 阅读 · 0 评论 -
leetcode习题集——111. 二叉树的最小深度
题目给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],算法public class P111 { int minHeight = Integer.MAX_VALUE; public int minDepth(TreeNode ...原创 2019-06-14 15:53:12 · 175 阅读 · 0 评论 -
leetcode习题集——109. 有序链表转换二叉搜索树
题目给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树:算法public class P109_2 {...原创 2019-06-14 15:26:23 · 291 阅读 · 0 评论 -
leetcode习题集——110. 平衡二叉树
题目给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7]返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4]返回 false 。算法public class P110 { ...原创 2019-06-14 15:38:07 · 319 阅读 · 0 评论 -
leetcode习题集——98. 验证二叉搜索树
题目给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。算法int last = Integer.MIN_VALUE; public boolean isValidBST(TreeNode root) { if (r...原创 2019-06-08 13:49:49 · 163 阅读 · 0 评论 -
leetcode习题集——96. 不同的二叉搜索树
题目给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?算法public class P96 { public int numTrees(int n) { if(n<1){ return 0; } int sum =0; int[] g = new int[n+1]; ...翻译 2019-06-08 12:58:55 · 134 阅读 · 0 评论 -
leetcode习题集——95. 不同的二叉搜索树 II
题目给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树。示例:输入: 3输出:[[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉搜索树:算法public class P95 { public List&l...原创 2019-06-07 17:20:04 · 124 阅读 · 0 评论 -
leetcode习题集——108. 将有序数组转换为二叉搜索树
题目将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树:算法class Solution { public TreeNode s...原创 2019-06-13 10:43:52 · 120 阅读 · 0 评论 -
leetcode习题集——107. 二叉树的层次遍历 II
题目给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7],返回其自底向上的层次遍历为:[[15,7],[9,20],[3]]算法public class P107 { public List<List<Integer>> l...原创 2019-06-13 09:50:36 · 177 阅读 · 0 评论 -
leetcode习题集——106. 从中序与后序遍历序列构造二叉树
题目根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树:算法public class P106 { public TreeNode buildTree(int[] inorder, int[] post...原创 2019-06-13 09:42:27 · 519 阅读 · 0 评论 -
leetcode习题集——105. 从前序与中序遍历序列构造二叉树
题目根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]算法public TreeNode buildTree(int [] preorder, int [] inorder) { if(preorder.lengt...原创 2019-06-12 15:55:36 · 157 阅读 · 0 评论 -
[面试真题]-[英语流利说]-哈夫曼树
题目请设计一个算法,给一个字符串进行二进制编码,使得编码后字符串的长度最短。(哈夫曼树)输入描述:每组数据一行,为待编码的字符串。保证字符串长度小于等于1000。输出描述:一行输出最短的编码后长度。输入例子:MT-TECH-TEAM输出例子:33解题思路哈夫曼树算法public class class1 { public static void main(Str...原创 2019-07-30 20:53:33 · 425 阅读 · 0 评论