【发布时间】:2020-06-15 00:42:02
【问题描述】:
我是 C++ 新手,所以这是我正在尝试解决的练习题。
所以我打算将一个 int 逐个数字地放入链表中,这是我写的:
ListNode* listtest() {
int i = 1234567;
ListNode* head = NULL;
ListNode** p = &head;
while (i != 0) {
int a = i % 10;
ListNode* tmp = new ListNode(a);
if (head == NULL) {
head = tmp;
}
else {
(*p)->next = tmp;
p = &tmp;
}
i = i / 10;
}
return head;
}
所以事实证明这个会输出一个链表,下一个是它本身。但是在我将p = &tmp 更改为p = &(*p)->next 之后,效果很好。据我所知,这两行都将此指针p 更改为p 之后的下一个节点。结果怎么会如此不同?
(另外有没有推荐的文章或视频我可以阅读以学习如何处理 LinkList 中的指针,因为作为初学者,这很混乱。)
【问题讨论】:
标签: c++