- 【LeetCode】二叉树算法题的几种解法与思路 题目名称 二叉树的层次遍历 II 题目地址 https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/ 题目描述 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例... 【LeetCode】二叉树算法题的几种解法与思路 题目名称 二叉树的层次遍历 II 题目地址 https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/ 题目描述 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例...
- 【LeetCode】二叉树算法题的几种解法与思路 题目名称 二叉树的层次遍历 II 题目地址 https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/ 题目描述 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例... 【LeetCode】二叉树算法题的几种解法与思路 题目名称 二叉树的层次遍历 II 题目地址 https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/ 题目描述 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例...
- 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 思路:递归 /** * Definition for a bi... 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 思路:递归 /** * Definition for a bi...
- 分析: 暴力求每一段距离也可。 对于以本节点为根的二叉树,最远距离有三种可能: 1)最远路径来自左子树 2 )最远路径来自右子树(图示与左子树同理) 3)最远路径为左右子树距离根最远的两个节点,经过根结点连起来。 (多种最长路径) 需要的信息: 1)左子树的最远路径长度 2)右子树的最远路径长度 3)左右子树的深度(... 分析: 暴力求每一段距离也可。 对于以本节点为根的二叉树,最远距离有三种可能: 1)最远路径来自左子树 2 )最远路径来自右子树(图示与左子树同理) 3)最远路径为左右子树距离根最远的两个节点,经过根结点连起来。 (多种最长路径) 需要的信息: 1)左子树的最远路径长度 2)右子树的最远路径长度 3)左右子树的深度(...
- 树 树的定义:树(Tree)是 n(n≥0)个结点的有限集。若 n=0,称为空树;若 n > 0,则它满足如下两个条件: (1) 有且仅有一个特定的称为根 (Root) 的结点; (2) 其余结点可分为 m (m≥0) 个互不相交的有限集 T1, T2, T3, …, Tm, 其中每一个集合本身又... 树 树的定义:树(Tree)是 n(n≥0)个结点的有限集。若 n=0,称为空树;若 n > 0,则它满足如下两个条件: (1) 有且仅有一个特定的称为根 (Root) 的结点; (2) 其余结点可分为 m (m≥0) 个互不相交的有限集 T1, T2, T3, …, Tm, 其中每一个集合本身又...
- 二叉树:二叉树是每个节点最多有两个子树的树结构。 本文介绍二叉树的遍历相关知识。 我们学过的基本遍历方法,无非那么几个:前序,中序,后序,还有按层遍历等等。 设L、D、R分别表示遍历左子树、访问根结点和遍历右子树, 则对一棵二叉树的遍历有三种情况:DLR(称为先根次序遍历),LDR(称为中根次序遍历),LRD (称为后根次序遍历)。 首先我们定义一颗二... 二叉树:二叉树是每个节点最多有两个子树的树结构。 本文介绍二叉树的遍历相关知识。 我们学过的基本遍历方法,无非那么几个:前序,中序,后序,还有按层遍历等等。 设L、D、R分别表示遍历左子树、访问根结点和遍历右子树, 则对一棵二叉树的遍历有三种情况:DLR(称为先根次序遍历),LDR(称为中根次序遍历),LRD (称为后根次序遍历)。 首先我们定义一颗二...
- 满二叉树 (Full binary tree) 除最后一层无任何子节点外,每一层上的所有结点都有两个子结点二叉树。 国内教程定义:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。 国外(国际)定义:a binary tree T is full if each ... 满二叉树 (Full binary tree) 除最后一层无任何子节点外,每一层上的所有结点都有两个子结点二叉树。 国内教程定义:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。 国外(国际)定义:a binary tree T is full if each ...
- 第一次见这个题,看时间小于O(N)。。。。。 只能是二分啊。 但是怎么二分,条件是什么,真的想不到。 后来知道了,我们要找最深一层最右边那个结点。借此确定结点个数。 我们知道,满二叉树的结点个数和深度是有公式的,那么我们找到最后一层最右边的结点,其实就可以确定结点个数。 目标:找箭头指向的结点。 我们采用二分... 第一次见这个题,看时间小于O(N)。。。。。 只能是二分啊。 但是怎么二分,条件是什么,真的想不到。 后来知道了,我们要找最深一层最右边那个结点。借此确定结点个数。 我们知道,满二叉树的结点个数和深度是有公式的,那么我们找到最后一层最右边的结点,其实就可以确定结点个数。 目标:找箭头指向的结点。 我们采用二分...
- 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2->5", "1->3"] 解释: 所有根节点到叶子节点的路径为: 1-&g... 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2->5", "1->3"] 解释: 所有根节点到叶子节点的路径为: 1-&g...
- 层序遍历序列为:ABCDEFG 思路:栈是先进后出的数据结构,而队列是先进先出的数据结构。 我们层序遍历,很明显,先遇到的节点先打印,不同于前中后序遍历,我们采用队列结构。 具体执行过程如下: 1、初始化——放入根节点 2、检查队列是否为空,如果是空则遍历完成 3、队列弹出元素,并打印 4、把弹出的元素的左孩子(如果存在的话)和右孩子(如果存... 层序遍历序列为:ABCDEFG 思路:栈是先进后出的数据结构,而队列是先进先出的数据结构。 我们层序遍历,很明显,先遇到的节点先打印,不同于前中后序遍历,我们采用队列结构。 具体执行过程如下: 1、初始化——放入根节点 2、检查队列是否为空,如果是空则遍历完成 3、队列弹出元素,并打印 4、把弹出的元素的左孩子(如果存在的话)和右孩子(如果存...
- 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / ... 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / ...
- 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 递归 /** * D... 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 递归 /** * D...
- 二叉树被记录成文件的过程,为二叉树的序列化 通过文件重新建立原来的二叉树的过程,为二叉树的反序列化 设计方案并实现。 (已知结点类型为32位整型) 思路:先序遍历实现。 因为要写入文件,我们要把二叉树序列化为一个字符串。 首先,我们要规定,一个结点结束后的标志:“!” 然后就可以通过先序遍历生成先序序列了。 但是,众所周知,只靠... 二叉树被记录成文件的过程,为二叉树的序列化 通过文件重新建立原来的二叉树的过程,为二叉树的反序列化 设计方案并实现。 (已知结点类型为32位整型) 思路:先序遍历实现。 因为要写入文件,我们要把二叉树序列化为一个字符串。 首先,我们要规定,一个结点结束后的标志:“!” 然后就可以通过先序遍历生成先序序列了。 但是,众所周知,只靠...
- 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: &n... 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: &n...
- 难度困难314 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 示例 1: 输入: [1,2,3] 1 / \ 2 3 输出: 6 示例 2: 输入: [-10,9,20,null,null,15,7] -10 &... 难度困难314 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 示例 1: 输入: [1,2,3] 1 / \ 2 3 输出: 6 示例 2: 输入: [-10,9,20,null,null,15,7] -10 &...
上滑加载中