随笔分类 - LeetCode DFS
oh!LeetCode
摘要:1. 题目地址:https://leetcode-cn.com/problems/invert-binary-tree/ 2. 题目解答: 从根节点开始,递归地对树进行遍历,并从叶子节点先开始翻转。如果当前遍历到的节点 \textit{root}root 的左右两棵子树都已经翻转,那么我们只需要交换
阅读全文
摘要:1. 树的各种遍历方法可以说是基本要求了,用递归方式去做,套一个模板就可以,我们主要考虑如何使用迭代法去做,递归代码直接给出: var preorderTraversal = function(root) { let ans = []; function preorder(root) { if (!
阅读全文
摘要:1. 题目地址:https://leetcode-cn.com/problems/path-sum/submissions/ 2. 题目分析:【1】条件有两个:(1) 要求路径从根节点到叶子节点 (2) 要求值加和为 targetSum 【2】BFS var hasPathSum = functio
阅读全文
摘要:1. 题目地址:https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/submissions/ 2. 题目解析:【1】使用广度优先搜索BFS,对于每一层的节点,如果第一次发现某节点左、右子结点均为空,则此节点为二叉树的最小深度.
阅读全文
摘要:1. 题目地址:https://leetcode-cn.com/problems/balanced-binary-tree/ 2. 题目分析:【1】平衡二叉树:整棵树中每个节点的左右子树高度差绝对值不超过1 【2】由此可以利用递归方法实现解答,先实现一个 function height 计算每个节点
阅读全文
摘要:在做 LeetCode 有关树形结构的深度优先搜素的题目时,经常有两种方法: 【1】递归形式的DFS 【2】非递归形式的BFS
阅读全文
摘要:1. 题目地址:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/ 2. 代码: 【1】递归 DFS:我们知道一棵树的最大深度,是 根结点 的 左子树、右子树 最大深度 + 1,那么可以使用递归来做. var maxDepth
阅读全文

浙公网安备 33010602011771号