二叉树刷题记(九-二叉搜索树中的中序后继-中序遍历)

简介: 二叉树刷题记(九-二叉搜索树中的中序后继-中序遍历)

前言

大家好,小嘟来啦,嘿嘿嘿,有没有想小嘟啊!,今天小嘟带来的还是我们的二叉树专题题目。

读者可以往下翻一下,可以看到今天带来的题可是个中等哦!

小嘟在这里猜一下,大家是不是刷题的时候一看到,中等、困难是不是就慌了(嘿嘿嘿),其实大家都一样,小嘟也是这样的。

困难咱们可以先不尝试,中等的我们还可以试试,今天就和小嘟看看这道中等题的庐山真面目吧!


正文

初遇
  • 题目


  • 示例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道题目了,我们发现,什么操作都离不开遍历,所以我们得好好掌握遍历,小嘟将三种基本的遍历放到了底部,请读者自行学习。


结尾

  • 今天小嘟给大家留一个思考题,请看题:还是上边这个题的思想不变,这个时候我要求中序遍历的前一个结点`,,该怎么做呢?。
  • 若有问题,欢迎留言!!!,小嘟会尽自己最大的努力解决问题。
  • 小嘟今天有点课程有点多,所以更新的比较晚,不好意思啦!


  • 等到周末,小嘟会回过头来修改文章哒!
  • 希望读者看完能有所收获!
  • 谢谢读者点赞点赞点赞啦!
  • 小嘟溜啦溜啦...
相关文章
|
7月前
leetcode代码记录(二叉树的层序遍历
leetcode代码记录(二叉树的层序遍历
29 0
|
7月前
二叉树刷题记(七-二叉树的右侧视图)
二叉树刷题记(七-二叉树的右侧视图)
|
7月前
|
算法
二叉树刷题记(八-二叉树的最大深度-深度遍历)
二叉树刷题记(八-二叉树的最大深度-深度遍历)
|
7月前
|
存储 Serverless 索引
二叉树的前序遍历 、二叉树的最大深度、平衡二叉树、二叉树遍历【LeetCode刷题日志】
二叉树的前序遍历 、二叉树的最大深度、平衡二叉树、二叉树遍历【LeetCode刷题日志】
|
7月前
|
算法 Java C++
数据结构与算法面试题:实现二叉树的遍历(前序、中序、后序、层序)。
数据结构与算法面试题:实现二叉树的遍历(前序、中序、后序、层序)。
44 0
剑指offer 58. 二叉搜索树的第k个结点
剑指offer 58. 二叉搜索树的第k个结点
55 0
剑指offer_二叉树---二叉搜索树的第k个结点
剑指offer_二叉树---二叉搜索树的第k个结点
66 0
|
算法
【刷算法】二叉树中序遍历的下一个结点
【刷算法】二叉树中序遍历的下一个结点
|
算法
【刷算法】层次遍历二叉树
【刷算法】层次遍历二叉树