【xsong 说算法】第三期:手撕力扣二叉树

本贴最后更新于 861 天前,其中的信息可能已经沧海桑田

3.1 前言

  看了很多别人总结的算法的笔记,他们都比较推荐在我们对算法无从下手的时候,去刷二叉树的题,因为二叉树类型的题能够培养我们的框架思维,为我们接下来刷动态规划类型打一个很好的基础。首先声明:该文章的侧重点是帮我们建立二叉树算法的类型体系,以便于我们熟能生巧,在面试中发挥的更好,对数据结构不做详细讲解。

二叉树的遍历:递归思想

//System.out.println(root.val);
void traverse(TreeNode root) {
    // 前序遍历
    //System.out.println(root.val);
    traverse(root.left)
    // 中序遍历
    //System.out.println(root.val);
    traverse(root.right)
    // 后序遍历
    //System.out.println(root.val);
}

3.2 验证二叉搜索树的合法性

boolean isBST(TreeNode root,TreeNode min,TreeNode max){
    //base case
    if(root == null){
        return ture;
    }

    if(min != null && root.val <= min)return false;
    if(max != null && root.val >= max)return false;
    return isBST(root.left,min,root) && isBST(root.right,root,max); 
}

3.3 带你刷 LeetCode 二叉树

下面的题都是我这周做的,然后写了比较详细的题解,东西基本都在题解里面了。

题目链接 我的题解
【力扣】226.翻转二叉树 我的题解
【力扣】226.翻转二叉树 我的题解
【力扣】114. 二叉树展开为链表 我的题解
【力扣】654. 最大二叉树 我的题解
【力扣】105. 从前序与中序遍历序列构造二叉树 我的题解
【力扣】106. 从中序与后序遍历序列构造二叉树 我的题解
【力扣】230. 二叉搜索树中第 K 小的元素 我的题解
【力扣】538. 把二叉搜索树转换为累加树 我的题解

  至此,二叉树就讲到这里,如果你把上面的题都做完,并且认真总结的话,相信你一定会有很大的收获。上面的题是二叉树的经典题型,如果都掌握的话,建议去深入学习 BST 的一些操作,比如删除操作,如何在删除之后依旧维持他的稳定?等等...这里就不再过多讨论了。有什么问题可以私信我或者提出来,大家共同进步!加油!
ps:由于临近期末,这周我就更新这一期,计网还有其他专业课该好好复习了,不能挂科。

  • 算法
    388 引用 • 254 回帖 • 22 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...