目录
前言
上一篇我们介绍了什么是二叉搜索树和如何实现它,这篇将会讲解二叉树的基本操作并解决一些有趣的问题。
一、查找最小值和最大值
我们已经知道对于二叉搜索树来说左子树的节点值较小,右子树的节点值较大,所以查找最小值和最大值只需要找到最左边的树叶和最右边树叶,可以通过迭代和递归两种方法,下面以最小值为例
struct BstNode{
int data;
struct BstNode* right;
struct BstNode* left;
};
//迭代的方法找最小值
int FindMin(struct BstNode* root)
{
if(root == NULL)//如果树是空的
{
printf("Error: Tree is empty\n");
return -1;
}
while(root->