448 · 二叉查找树的中序后继
描述
给定一个二叉查找树(什么是二叉查找树),以及一个节点,求该节点在中序遍历的后继,如果没有则返回null
保证p是给定二叉树中的一个节点。(您可以直接通过内存地址找到p)
样例
样例 1:
输入: {1,#,2}, node with value 1
输出: 2
解释:
1
2
样例 2:
输入: {2,1,3}, node with value 1
输出: 2
解释:
2
/
1 3
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
/*
* @param root: The root of the BST.
* @param p: You need find the successor node of p.
* @return: Successor of p.
*/
public TreeNode inorderSuccessor(TreeNode root, TreeNode p) {
// write your code here
if(root == null || p == null){
return null ;
}
if(root.val <= p.val){
return inorderSuccessor(root.right, p) ;
}else{
TreeNode left = inorderSuccessor(root.left, p) ;
return (left != null)? left : root ;
}
}
}
本文介绍了一种寻找二叉查找树中指定节点中序遍历后继的方法。通过对二叉树结构特性的利用,算法能有效地定位到目标节点的后继节点。
850

被折叠的 条评论
为什么被折叠?



