力扣题目:#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):递归栈的开销最坏情况是当二叉树呈链式
问题总结
- 尝试了迭代法失败,不能单纯的比较左节点小于中间节点,右节点大于中间节点。要比较的是 左子树所有节点小于中间节点,右子树所有节点大于中间节点。
- 二叉搜索树里不能有重复元素
本题收获
- 二叉搜索树性质:中序遍历的节点树值单调递增
- 二叉搜索树的标准递归法:在中序遍历的过程中进行节点值比较,从而判断是否单调递增