代码随想录算法训练营第十四天 | Javascript | 继续二叉树的一天 | 力扣Leetcode | 补 [617、700、98、530]

目录

前言

简介

题目链接:617. 合并二叉树

题目链接: 700. 二叉搜索树中的搜索

题目链接:98. 验证二叉搜索树

题目链接:530. 二叉搜索树的最小绝对差


前言

踏平坎坷成大道,斗罢艰险又出发!

自律的尽头是自控,自控的尽头是硬控

愿道友们披荆斩棘,终能得偿所愿。

简介

本人是小几年经验的前端开发,算法基础只有力扣几十道题,非常薄弱。

今天是个人的代码随想录算法硬控自己第14天,继续补二叉树,冲!

题目链接:617. 合并二叉树

简单,直接撸。

865b808c2d594646b92b12d33f312821.png

题目链接: 700. 二叉搜索树中的搜索

简单,直接撸。

递归法:

be1116d631424c968741b013ccf50483.png

迭代法:

95d9aa2b731541788dd55080dd52b944.png

题目链接:98. 验证二叉搜索树

这里犯了一个很多道友容易忽视的错误:1. 作用域。2. var vs let。

我先贴个错误的代码,大家看看哪里有错:

1304652ecd384067b572fe50bb51dec7.png

答案是prev的初始化,JS里我这么定义prev=null会让它变成原始类型,原始类型是按值传递的,也就意味着在递归中改了prev值也不会在递归其他层得到保留,解决办法有两个,一个是把他变成对象,对象里包含prev,对象就不是按值传递的了而是引用。一个是定义一个外部局部变量,使得递归的每一层仍然能正确更新prev。

这里我贴一个定义外部局部变量的解决方法:

69a00bd0fb3244b6b172d1019cb8b5f8.png


 

题目链接:530. 二叉搜索树的最小绝对差

这里与双指针法做上一题有异曲同工之处。只需要注意这里返回值是不需要返回任何东西的,因为题目的要求的最小绝对差已经在外部定义好了。

fdd60f65dc52424db22b82e1b08928e6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值