1) 树的左遍历
void LeftWalkTree(node *root)
{
if(root)
printf(" %d \n", root->data);
else
return;
LeftWalkTree(root->left);
LeftWalkTree(root->right);
}
2)最低公共祖先
已知道二元搜索数上的两个节点的值,请找出他们的最低公共祖先。可以假设这两个值是存在的。函数接口如下:
int FindLowestCommonAncestor(node *root, int value1, int value2)
{
node *curNode = root;
while(1)
{
if(curNode->value > value1 && curNode->value >value2)
curNode = curNode->left;
else if(curNode->value <value1 && curNode->value <value2)
curNode = curNode->right;
else
return curNode->node;
}
}