2

我得到了下面代码的输出,但我没有得到确切的逻辑。第 3 行(递归 fn 调用)将Null在到达叶节点时传递值,那么它如何打印数据部分

void Inorder(struct node *node)
{
  if(node!=NULL)
  {
     Inorder(node->left);
     printf("%d",node->data);
     Inorder(node->right);
  }
}
4

1 回答 1

2

如果节点不为空,则基本上在每次递归调用时都会继续。因此,node->left对叶节点的调用将不再继续,并且随着递归函数的展开,节点将打印在下一行。

试运行一个示例并自己验证。

于 2015-06-25T11:06:41.713 回答