返回

#yyds干货盘点# LeetCode程序员面试金典:后继者

发布时间:2023-01-01 04:51:47 217

题目:

设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。

如果指定节点没有对应的“下一个”节点,则返回null。

示例 1:

输入: root = [2,1,3], p = 1

 2

/ \

1   3

输出: 2

示例 2:

输入: root = [5,3,6,2,4,null,null,1], p = 6

     5

    / \

   3   6

  / \

 2   4

/  

1

输出: null

代码实现:

class Solution {
public TreeNode inorderSuccessor(TreeNode root, TreeNode p) {
Deque stack = new ArrayDeque();
TreeNode prev = null, curr = root;
while (!stack.isEmpty() || curr != null) {
while (curr != null) {
stack.push(curr);
curr = curr.left;
}
curr = stack.pop();
if (prev == p) {
return curr;
}
prev = curr;
curr = curr.right;
}
return null;
}
}

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线