ListNode* retHead(ListNode* list1) { while (list1->next == nullptr) { list1->next = list1; } return list1; }为何返回值还是最初的头节点
时间: 2023-12-10 17:39:17 浏览: 105
list链表实现技术
在该函数中,虽然在while循环中把list1的下一个节点设为list1本身,但是并没有更新返回值,仍然返回了最初传入的头节点。如果希望返回列表的最后一个节点,可以在while循环结束后再返回list1的下一个节点,即返回list1->next。同时,需要注意循环条件是否正确,应该是当list1->next不为空时进入循环。下面是修改后的代码:
```
ListNode* retLast(ListNode* list1) {
while (list1->next != nullptr) {
list1 = list1->next;
}
return list1;
}
```
阅读全文