给一个bst,和其中一个节点的value,求在bst中比这个节点大的下一个value
,面试官要求 O(1) space和 O(log N) time的解法。
Answer:
Node greater=null;
Node cur=root;
while(cur!=null) {
if(cur.val<=target) { cur=cur.right; }
else { greater=cur; cur=cur.left; }
}
if (greater==null) // no result
else return greater.val;
No comments:
Post a Comment