花了一个多小时找错误,跟书上明明一模一样就是运行不出来,刚开始以为是初始创建错误,调试之后才发现、
!!!!!if语句中的两个条件位置搞错了结果就一直卡在那个地方
&& ||这种惰性运算符一定要记住条件的顺序影响代码的运行
这应该是原本的if判断语句
if(pre != NULL && pre->rchild == NULL)
{
pre->rchild = bt;
pre->rtag = 1;
}
第一次判断时,pre初值为NULL,所以根本找不到pre->rchild,所以第一次判断只需判断pre==null 便跳过if语句执行下一条命令了
顺序一变,就成了bug
if(pre->rchild == NULL && pre != NULL)
{
pre->rchild = bt;
pre->rtag = 1;
}
居然被卡在这个地方真的是!!!!自己蠢哭自己