二叉树
萌萌,站起来
这个作者很懒,什么都没留下…
展开
-
lee129 根节点到叶子节点数字之和
lee129 根节点到叶子节点数字和给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3]1/ 2 3输出: 25解释:从根到叶子节点路径 1->...原创 2020-03-29 15:00:49 · 163 阅读 · 0 评论 -
lee树相关问题 左叶子节点的和
求所有右叶子节点和我的思路:class Solution { int sum=0; public int sumOfLeftLeaves(TreeNode root) { if (root == null) return 0;//递归结束条件 // int left, right; if (root.left != null &a...原创 2020-03-12 21:26:44 · 119 阅读 · 0 评论 -
玩转236 二叉树的最近公共祖先 (LCA) lowest common ancestor of a binary tree
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,...原创 2020-02-09 12:55:43 · 109 阅读 · 0 评论 -
lee437 路径总和
给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 810/ ...原创 2020-02-06 13:53:01 · 130 阅读 · 0 评论 -
玩转lee二叉树 路径总和 节点个数 叶子节点个数 第k层节点的个数 所有节点和 所有叶子节点和 所有左叶子节点和
路经总和给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 ...原创 2020-01-30 17:12:10 · 258 阅读 · 0 评论 -
玩转二叉树常考题 最大最小深度 翻转二叉树 判断二叉树对称 完全二叉树节点个数(3.29在思考思考) 判断平衡二叉树(返回深度 ,看是不是-1))
求二叉树最小深度 递归class Solution { public int minDepth(TreeNode root) { if(root==null) return 0; return helper(root); } public int helper(TreeNode root){ if(r...原创 2020-01-29 22:35:34 · 334 阅读 · 0 评论 -
new 序列化二叉树 二叉树和字符串的来回转换
请实现两个函数,分别用来序列化和反序列化二叉树二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。二叉树的反序列化是指:根据某种遍历顺序得到的序列化字...原创 2019-10-29 10:27:41 · 410 阅读 · 0 评论 -
new 把二叉树打印成多行 看层序遍历程序 5.13总结
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。、思路 层序遍历 队列每次打印一个节点的时候,如果该节点有子节点,则把该节点的子节点放到队列的末尾,到队列的头部取出最早进入队列的节点,用到的数据结构ArrayList<ArrayList> result = new ArrayList<ArrayList>();用 ArrayList<Ar...原创 2019-10-27 18:36:33 · 82 阅读 · 0 评论 -
new 对称的二叉树
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路:递归首先根节点以及其左右子树,左子树的左子树和右子树的右子树相同左子树的右子树和右子树的左子树相同即可,采用递归非递归也可,采用栈或队列存取各级子树根节点public class Solution { boolean isSymmetrical(TreeNode ...原创 2019-10-27 17:40:26 · 69 阅读 · 0 评论 -
new 二叉树的下一个结点
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。还原二叉树既然给了二叉树的某个结点,且二叉树存储着指向父结点的指针(next),那我们可以先找到根节点,再对树进行中序遍历,最后根据中序遍历结果找到给定结点的下一结点/*public class TreeLinkNode { int val; ...原创 2019-10-27 16:30:07 · 411 阅读 · 0 评论 -
二叉树中和为某一值的路径 未完
输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)...原创 2019-10-16 20:44:43 · 58 阅读 · 0 评论 -
new 从上往下打印二叉树
从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路通过上面的具体例子分析,可以找到规律:每一次打印一个节点的时候,如果该节点有子节点,则把该节点的子节点放到一个队列的尾部。接下来到对队列的头部取出最早进入队列的节点放到ArrayList 中,重复前面的操作,直至队列中所有的节点都存到ArrayList中。import java.util.*;/**public class Tre...原创 2019-10-16 16:58:55 · 91 阅读 · 0 评论 -
new二叉树的镜像
操作给定的二叉树,将其变换为源二叉树的镜像。二叉树的镜像定义:源二叉树8/ 6 10/ \ / 5 7 9 11镜像二叉树8/ 10 6/ \ / 11 9 7 5思路用递归如果根为空 return交换左边交换右边/**public class TreeNode { int val = 0; TreeNode left = ...原创 2019-10-15 20:05:22 · 113 阅读 · 1 评论 -
new 树的子结构
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路1.先设结果为false。 boolean result = false;2.当A/B树都不为0时开始比较如果找到了对应Tree2的根节点的点以这个根节点为为起点判断是否包含Tree2如果找不到,那么就再去root的左儿子当作起点,去判断时候包含Tree2如果...原创 2019-10-15 19:43:28 · 76 阅读 · 0 评论 -
new4重建二叉树(lee105 从前序与中序遍历序列构造二叉树)5.22 改
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。2级标题根据中序遍历和前序遍历可以确定二叉树,具体过程为:1.根据前序序列第一个结点确定根结点2.根据根结点在中序序列中的位置分割出左右两个子序列3.对左...原创 2019-10-11 18:45:25 · 93 阅读 · 0 评论