递归创建树时,insert函数中if(!(*tree))语句含义咨询
树插入函数中
if(!(*tree))语句的解释 先拆解这个C语言语句的含义:
tree是指向node结构体的指针,*tree表示取该指针指向的节点对象;!是逻辑非运算符,在C语言中空指针会被视为“假”值,所以!(*tree)等价于判断*tree是否为空指针;- 整个条件的意思就是:检查当前指针指向的位置是否没有节点(为空),满足条件时就会执行分支里的代码——创建新节点并把地址赋值给
tree指针。
在递归构建树的场景里,这个判断是用来定位插入位置的:你会递归遍历树的左/右子树,直到找到某个子节点的位置是空的(也就是*tree为空),这时就在该位置插入新节点,完成树的扩展。
内容的提问来源于stack exchange,提问作者Sayantan Chatterjee
相关产品推荐
相关产品推荐

