如图所示:
因为你的p节点是新增的节点,所以必然是尾巴节点,而尾插入为了保证插入始终是在尾巴节点因此在插入后必须保证r也同样是尾巴节点,所以当r->next = p
执行之后,实际上的链表插入已经完成了,但是由于插入了新的节点,之前是尾节点的r现在不是尾节点了,那该怎么办呢?没事,p是新插入的尾节点啊,那就把p直接复制给r不就好了吗,于是r变成了尾节点,可以进行下一次的插入了
它这个应该是找尾和插入尾的过程:
r->next=p; //表尾链接
r=p; //r为上一次的链表的尾结点
因为它是从第一个开始新建的所以每次只用保存当前位置,比如第一个 1 为尾,的二个2为尾.... 它的找尾与新建结点的循环重叠了
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
这种问题你是认真的吗。。。
首先你的描述有点问题,r本身就是一个指针,从头到尾没有任何指针指向r
然后:我包好了一个饺子放你手上,你手上只能拿一个饺子,无论我包完了多少饺子,你手上拿的是不是我最后一个包的呢