/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public TreeNode inorderSuccessor(TreeNode root, TreeNode p) {
if (root == null) {
return null;
}
TreeNode succ = null;
TreeNode node = root;
while (node != null) {
if (node.val == p.val) {
if (node.right == null) {
return succ;
} else {
node = node.right;
}
} else if (node.val > p.val) {
succ = node;
node = node.left;
} else {
node = node.right;
}
}
return succ;
}
// public TreeNode inorderSuccessor(TreeNode root, TreeNode p) {
// if (root == null) {
// return null;
// }
// TreeNode prevMin = null;
// TreeNode node = root;
// while (node != null) {
// if (node.val == p.val) {
// if(node.left == null) {
// return prevMin;
// } else {
// node = node.left;
// }
// } else if (node.val < p.val) {
// prevMin = node;
// node = node.right;
// } else {
// node = node.left;
// }
// }
// return prevMin;
// }
}
Inorder Successor in BST
最新推荐文章于 2022-01-20 12:12:47 发布