递归算法和循环算法的转换.
如一个在二插树中查找一个数字的循环实现:
Node findSixNode(Node root){
Node curNode = root;
while(curNode){
if(curNode.getValue() == 6) return curNode;
else if(curNode.getValue() < 6) curNode = curNode.getRight();
else if(curNode.getValue() > 6) curNode = curNode.getLeft();
}
return null;
}
递归实现:
Node findSixNode(Node root){
if(!root) return null;
else if(root.getValue() == 6) return root;
else if(root.getValue() < 6) return findSix(root.getRight());
else if(root.getValue() > 6) return findSix(root.getLeft());
}
}