力扣算法刷题Day20 | 二叉树:最大二叉树 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树

本文记录了四道力扣上的二叉树题目,包括最大二叉树、合并二叉树、二叉搜索树中的搜索及验证二叉搜索树。解题方法涉及递归法和迭代法,复杂度分析强调了最坏情况下的时间复杂度,并总结了递归终止条件和二叉搜索树的特性。
摘要由CSDN通过智能技术生成

力扣题目:#654.最大二叉树

刷题时长:5min

解题方法:递归法(前序遍历)

复杂度分析

  • 时间O(n^2):在最坏的情况下,数组严格递增或递减,需要递归 nnn 层,第 i (0≤i<n) 层需要遍历 n−i个元素以找出最大值,总时间复杂度为 O(n2)

    2 )。

  • 空间O(n)

问题总结

本题收获

  • 重复练习用递归构造二叉树

力扣题目:#617.合并二叉树 

刷题时长:30min

解题方法:递归法(前序遍历)

复杂度分析

  • 时间O(min(m, n))
  • 空间 O(min(m, n))

问题总结

  • 递归终止条件写成了当两颗树同时遍历到空节点。此题当任意一颗树遍历到空节点时,即可返回另一颗树的此时的根节点了。

本题收获

  • 无需重新构建新树,只要在其中一颗已给树上操作即可

力扣题目:#700.二叉搜索树中的搜索

刷题时长:10min

解题方法:迭代法(二分查找)

复杂度分析

  • 时间O(n):最坏情况二叉树链式
  • 空间O(1)

问题总结

  • 审题有误,返回值的类型看错
  • 二分条件写反了

本题收获

  • 递归法

力扣题目:#98.验证二叉搜索树

刷题时长:20min

解题方法:递归法(中序遍历转化成数组)

复杂度分析

  • 时间O(n)
  • 空间O(n):递归栈的开销最坏情况是当二叉树呈链式

问题总结

  • 尝试了迭代法失败,不能单纯的比较左节点小于中间节点,右节点大于中间节点。要比较的是 左子树所有节点小于中间节点,右子树所有节点大于中间节点。
  • 二叉搜索树里不能有重复元素

本题收获

  • 二叉搜索树性质:中序遍历的节点树值单调递增
  • 二叉搜索树的标准递归法:在中序遍历的过程中进行节点值比较,从而判断是否单调递增
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值