您的位置:首页 > 其它

Inorder Successor in BST

2016-07-16 07:36 309 查看
/**
* Definition for a binary tree node.
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*
4000
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 == p) {
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;

// 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;
// }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: