CC150 : Binary Tree Inorder Successor

Assume you know the parent of the node, return the inorder successor. 
 1 class Solution {
 2   public TreeNode inorderSuccessor(TreeNode node) {
 3     if(node == null) return null;
 4     if(node.right != null) {
 5       node = node.right;
 6       if(node == null) return null;
 7       while(node.left != null) {
 8         node = node.left;
 9       }
10       return node;
11     } else {
12       TreeNode parent = node.parent;
13       while(parent != null && parent.left != node) {
14         node = parent;
15         parent = node.parent;
16       }
17       return node;
18     }
19   }
20 }

 

posted @ 2015-02-26 11:53  江南第一少  阅读(173)  评论(0)    收藏  举报