gpt4 book ai didi

C++:递归追加链表

转载 作者:太空狗 更新时间:2023-10-29 21:03:09 25 4
gpt4 key购买 nike

这段代码应该追加两个链表,我完全看不出这段代码是如何追加作为参数传递的两个 Cell 结构的,因为没有对第二个参数进行任何操作。它只是请求第一个 Cell 中的下一个节点 - 那么这是如何工作的?

void Append(Cell *& first, Cell* second)
{
if (first == NULL)
{
first = second;
}
else {
Append(first->next, second);
}
}

最佳答案

函数的 else block 一直跟随 firstnext 指针,直到到达该列表的末尾。也就是说,直到 first->nextNULL 并且 else 不会被执行。

现在是 if block 中的基本情况。当 first->nextNULL 时,它会将指针更改为指向 second,这可能是另一个列表中的第一个元素。

之所以有一些效果是因为 first->next 指针是通过引用传递的。修改指针将修改列表末尾的实际指针,而不是仅仅修改一个拷贝。

关于C++:递归追加链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14006653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com