前言
大家好,小嘟来啦,嘿嘿嘿,有没有想小嘟啊!,今天小嘟带来的还是我们的二叉树专题题目。
读者可以往下翻一下,可以看到今天带来的题可是个中等哦!
小嘟在这里猜一下,大家是不是刷题的时候一看到,中等、困难是不是就慌了(嘿嘿嘿),其实大家都一样,小嘟也是这样的。
困难咱们可以先不尝试,中等的我们还可以试试,今天就和小嘟看看这道中等题的庐山真面目吧!
正文
初遇
- 题目
- 示例1
- 示例2
了解
- 看完这道题,小嘟就一个感受,这不就是又要我遍历二叉树,怎样遍历呢?小嘟我在看一遍题目,这不就是要中序遍历呗!然后遍历完,在来一个循环不就结束喽,读者请看代码。
熟悉
- 代码
var inorderSuccessor = function(root, p) { let res = []; let stack = []; //中序遍历序列的构造过程 while(root||stack.length){ while(root){ stack.push(root); root = root.left; } let target = stack.pop(); res.push(target); root = target.right; } //在中序序列中和p.val相等的二叉树结点 //然后进行如下的判断即可 for(let i=0;i<res.length;i++){ if(i == res.length-1) return null; if(res[i].val == p.val) return res[i+1]; } };
知彼
- 总结:做了这将近9道题目了,我们发现,什么操作都离不开遍历,所以我们得好好掌握遍历,小嘟将三种基本的遍历放到了底部,请读者自行学习。
结尾
- 今天小嘟给大家留一个思考题,请看题:还是上边这个题的思想不变,这个时候我要求中序遍历的前一个结点`,,该怎么做呢?。
- 若有问题,欢迎留言!!!,小嘟会尽自己最大的努力解决问题。
- 小嘟今天有点课程有点多,所以更新的比较晚,不好意思啦!
- 等到周末,小嘟会回过头来修改文章哒!
- 希望读者看完能有所收获!
谢谢读者点赞点赞点赞啦!
小嘟溜啦溜啦...