- 题目描述 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其自底向上的层次遍历为: [ [15,7], [9,20], [3] ] 1234567891011121... 题目描述 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其自底向上的层次遍历为: [ [15,7], [9,20], [3] ] 1234567891011121...
- 题目描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 1 返回它的最大深度 3 。 解答 代码(递归) int maxDepth(TreeNode* root) { if(root==NUL... 题目描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 1 返回它的最大深度 3 。 解答 代码(递归) int maxDepth(TreeNode* root) { if(root==NUL...
- 目录 文章目录 目录堆堆的应用堆的基本操作往堆中插入元素删除堆顶元素 堆的排序参考文章 堆 堆可以是一个完全二叉树,这样实现的堆也被称为二叉堆。完全二叉树,它的叶子节点都在最后一层,并且这些叶子节点都是靠左排序的。 堆中节点的值都 >=(或 <=)其子节点的值,堆中如果节点的值都 >= 其子节点的值,我们把它称为大顶堆,如果都 ... 目录 文章目录 目录堆堆的应用堆的基本操作往堆中插入元素删除堆顶元素 堆的排序参考文章 堆 堆可以是一个完全二叉树,这样实现的堆也被称为二叉堆。完全二叉树,它的叶子节点都在最后一层,并且这些叶子节点都是靠左排序的。 堆中节点的值都 >=(或 <=)其子节点的值,堆中如果节点的值都 >= 其子节点的值,我们把它称为大顶堆,如果都 ...
- 题目描述 给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 12345678 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 解答 By 海轰 vector<int> ans; vector<int> postorderTraversal(TreeNo... 题目描述 给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 12345678 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 解答 By 海轰 vector<int> ans; vector<int> postorderTraversal(TreeNo...
- 题目描述 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。 示例 1: 输入: 3 / \ 9 20 / \ 15 7 输出:[3, 14.5, 11] 解释: 第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。 123456789 提示: 节点值的范围在32位有符号整数范围... 题目描述 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。 示例 1: 输入: 3 / \ 9 20 / \ 15 7 输出:[3, 14.5, 11] 解释: 第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。 123456789 提示: 节点值的范围在32位有符号整数范围...
- 题目描述 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 1234567891011121314 解答 Demo(从上到下 依次交换左右节点) TreeNode* invertTree(TreeNode* root) ... 题目描述 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 1234567891011121314 解答 Demo(从上到下 依次交换左右节点) TreeNode* invertTree(TreeNode* root) ...
- 题目描述 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [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 1234567891011121314151617 进阶: ... 题目描述 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [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 1234567891011121314151617 进阶: ...
- 先序遍历:中、左、右 中序遍历:左、中、右 后序遍历:左、右、中 比如下面这科树 1 2 3 4 ... 先序遍历:中、左、右 中序遍历:左、中、右 后序遍历:左、右、中 比如下面这科树 1 2 3 4 ...
- 先序遍历:中、左、右 中序遍历:左、中、右 后序遍历:左、右、中 比如下面这科树 1 2 3 4 ... 先序遍历:中、左、右 中序遍历:左、中、右 后序遍历:左、右、中 比如下面这科树 1 2 3 4 ...
- 1 问题 判断二叉树是不是对称(递归和非递归实现) 如下二叉树,就是对称的二叉树 2 3 3 1 4 4 1 如下二叉树,就是非对称的二叉树 2 3 3 1 4 4 2 2 代码实现 #include <iostream>#inclu... 1 问题 判断二叉树是不是对称(递归和非递归实现) 如下二叉树,就是对称的二叉树 2 3 3 1 4 4 1 如下二叉树,就是非对称的二叉树 2 3 3 1 4 4 2 2 代码实现 #include <iostream>#inclu...
- 1 问题 中序打印二叉树(非递归实现),比如二叉树如下 /* 2 * 3 5 * 1 4 2 3 * 3 2 1 5 1 4 2 3 中序:按左中右来打印二叉树,结果如下 312314521245233  ... 1 问题 中序打印二叉树(非递归实现),比如二叉树如下 /* 2 * 3 5 * 1 4 2 3 * 3 2 1 5 1 4 2 3 中序:按左中右来打印二叉树,结果如下 312314521245233  ...
- 1 问题 求二叉树中俩个节点的最低共同父节点,比如二叉树如下 4 2 6 ... 1 问题 求二叉树中俩个节点的最低共同父节点,比如二叉树如下 4 2 6 ...
- 1 完全二叉树 完全二叉树是由 满二叉树 而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。 如下就是完全二叉树 1 2 34 5 6 7 如下就是完全二叉树 1 2 34 5 如下不是完全二叉树 1 2 34 5 7 ... 1 完全二叉树 完全二叉树是由 满二叉树 而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。 如下就是完全二叉树 1 2 34 5 6 7 如下就是完全二叉树 1 2 34 5 如下不是完全二叉树 1 2 34 5 7 ...
- 1 完满二叉树 除了叶子结点之外的每一个结点都有两个孩子结点。 如下是完满二叉树 1 2 3 4 5 6 7 2 分析 我们按层(queue)遍历数,如果发现左子树为空右子树不为空 或者 左子树不为空右子树为空 的情况下直接返回false... 1 完满二叉树 除了叶子结点之外的每一个结点都有两个孩子结点。 如下是完满二叉树 1 2 3 4 5 6 7 2 分析 我们按层(queue)遍历数,如果发现左子树为空右子树不为空 或者 左子树不为空右子树为空 的情况下直接返回false...
- 先序遍历:中、左、右 中序遍历:左、中、右 后序遍历:左、右、中 比如下面这科树 1 2 3 4 5 ... 先序遍历:中、左、右 中序遍历:左、中、右 后序遍历:左、右、中 比如下面这科树 1 2 3 4 5 ...
上滑加载中