Skip to content

wangxiaochaocccc/leetcode-eyeryday

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

leetcode-eyeryday

每天刷算法题 要加油呦!自勉😊

算法基本套路总结

一、二叉搜索树相关

1.1 二叉搜索树相关题目最重要的就是一定要知道二叉搜索树的特点:左子树的值都比根节点小,右子树的值都比根节点大。这是解决这一类问题的关键

这类问题大部分做法都是递归处理左右子树,获取我们想要的结果

eg: 235-二叉搜索树的公共祖先

1.2 寻找二叉搜索树中的部分子树,只要找到根节点就可以了,直接返回根节点,这就是一棵子树了。不要想复杂了。

eg: 700-二叉搜索树的搜索

1.3 二叉搜索树可以和链表结合来解决问题,达到我们想要的目的

eg: 剑指offer II 54 展平二插搜索树

二、N叉树的遍历

1.1 N叉树的前后遍历都是固定的模板

不同之处就在于 是先遍历再往数组内存,还是先存后遍历

image

1.2 N叉树的深度

这道题就是带着深度值进行深度优先遍历,

var maxDepth = function(root) {
   const dfs = (root,depth)=> {
       if(!root) return 0;
        depth++
        let temp = depth
        for(let item of root.children) {
            depth = Math.max(depth,dfs(item,temp))
        }
        return depth
   }
   return dfs(root,0)
  
};

三、二叉树路径相关

求二叉树路径相关问题,基本都是声明一个数组,把结果存到数组中,递归处理左右子树,判断边界情况返回。

eg: 257-二叉树的所有路径

About

每天刷算法题 要加油呦!自勉😊

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published