目录
前言
踏平坎坷成大道,斗罢艰险又出发!
自律的尽头是自控,自控的尽头是硬控。
愿道友们披荆斩棘,终能得偿所愿。
简介
本人是小几年经验的前端开发,算法基础只有力扣几十道题,非常薄弱。
今天是个人的代码随想录算法硬控自己第14天,继续补二叉树,冲!
题目链接:617. 合并二叉树
简单,直接撸。
题目链接: 700. 二叉搜索树中的搜索
简单,直接撸。
递归法:
迭代法:
题目链接:98. 验证二叉搜索树
这里犯了一个很多道友容易忽视的错误:1. 作用域。2. var vs let。
我先贴个错误的代码,大家看看哪里有错:
答案是prev的初始化,JS里我这么定义prev=null会让它变成原始类型,原始类型是按值传递的,也就意味着在递归中改了prev值也不会在递归其他层得到保留,解决办法有两个,一个是把他变成对象,对象里包含prev,对象就不是按值传递的了而是引用。一个是定义一个外部局部变量,使得递归的每一层仍然能正确更新prev。
这里我贴一个定义外部局部变量的解决方法:
题目链接:530. 二叉搜索树的最小绝对差
这里与双指针法做上一题有异曲同工之处。只需要注意这里返回值是不需要返回任何东西的,因为题目的要求的最小绝对差已经在外部定义好了。