关注Java领域相关技术 记录有趣的事情

后序遍历

LeetCode-145. 二叉树的后序遍历

问题地址 LeetCode每日一题/2020-09-29 LeetCode145. 二叉树的后序遍历 问题描述 规则 给定一个二叉树,返回它的 *后序 遍历。 示例 输入: 1 \ 2 / 3 输出: 进阶 递归算法很简单,你可以通过迭代算法完成吗? 解析 解题思路 后序遍历:是按照访问左右根的顺序遍历这棵树,而在访问左子树或者右子树的时候,我们按照同样的方式遍历,直到遍历完整棵树。整个遍历过程天然具有递归的性质。 递归遍历树的时候隐式的维护一个栈,我们使用迭代的方法遍历树,需要自己维护栈; 下面介绍一种方法标记法,针对树的前、中、后序遍历可以写统一模板的代码; 在使用栈时,无法同时处理访问节…
US-B.Ralph
9 months ago

LeetCode-106. 从中序与后序遍历序列构造二叉树

问题地址 LeetCode每日一题/2020-09-25 LeetCode106. 从中序与后序遍历序列构造二叉树 问题描述 规则 根据一棵树的中序遍历与后序遍历构造二叉树。 注意 你可以假设树中没有重复的元素。 示例 示例一: 给出 中序遍历 inorder = 后序遍历 postorder = 返回二叉树 3 / \ 9 20 / \ 15 7 解析 解题思路 题目给定一个二叉树的中序遍历序列、后序遍历序列,且二叉树中元素没有重复; 根据后序遍历序列常用算法,可以看到后序遍历序列的最后一个元素处理的是根节点。 if (root == null) return; postorderTrave…
US-B.Ralph
10 months ago

LeetCode-617. 合并二叉树

问题地址 LeetCode每日一题/2020-09-23 LeetCode617. 合并二叉树 问题描述 规则 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。 示例 示例一: 输入: Tree 1 Tree 2 1 2 / \ / \ 3 2 1 3 / \ \ 5 4 7 输出: 合并后的树: 3 / \ 4 5 / \ \ 5 4 7 注意 合并必须从两个树的根节点开始。 解析 解题思路 题目要…
US-B.Ralph
10 months ago

LeetCode-968. 监控二叉树

问题地址 LeetCode每日一题/2020-09-22 LeetCode968. 监控二叉树 问题描述 规则 给定一个二叉树,我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所有节点所需的最小摄像头数量。 示例 示例一: 输入: 输出:1 解释:如图所示,一台摄像头足以监控所有节点。 示例二: 输入: 输出:2 解释:需要至少两个摄像头来监视树的所有节点。 上图显示了摄像头放置的有效位置之一。 提示 给定树的节点数的范围是 。 每个节点的值都是 0。 解析 解题思路 根据题意,我们给节点定义一些状态: 0:空白节点; 1:被监控节点; 2…
US-B.Ralph
10 months ago