public static TreeNode getInOrderNextNode(TreeNode e){
		if(e==null){
			return null;
		}
		if(e.right != null){
			return mostLeftChild(e.right);
		}else{
			TreeNode parent = e.parent;
			TreeNode children = e;
			while(parent != null){
				if(parent.left == children)
					break;
				children = parent;
				parent = parent.parent;
			}
			return parent;
		}
	}