Code Bye

二叉查找树的插入-C语言实现

下面题目,是C语言关于二叉查找树的插入的实现
前面4个空都容易理解,到了最后一个空,答案填入*root=s,答案本身是没错的,但是关于程序本身有点疑问
本人画的剪头,是father在前面的赋值语句,
本人认为前面father既然会被赋值,就不可能存在空指针的情况,所以这里的if(!father)肯定不会被执行,既然不会被执行,为什么还要去判断?
所以不管代码怎么运行,father肯定不会变成空指针,
更何况二叉查找树假如要插入新结点的话,也不可能是新结点替换根节点,原因是任何值总是可以插入到根节点的左右两边,而且这样替换的话,整个二叉树的结构都会从上到下改变。
麻烦大家帮看看,谢谢。
解决方案:20分
p == NULL || key == p->key_value 的时候, father 不会被赋值

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明二叉查找树的插入-C语言实现