采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
单链表的逆置,头插法
我先明确一下你的问题。你的问题是不是:以下两句话,具体指针的变动是怎样的?
L->next = NULL;
p->next = L->next;
如果不是,能否再具体描述一下?
==========
我看了一遍,这个代码整体是有Bug的,是不对的。
关于链表反转这个问题,我全是Leetcode的206号问题。
英文版传送门:https://leetcode.com/problems/reverse-linked-list/
中文版传送门:https://leetcode-cn.com/problems/reverse-linked-list/
对于你截图的这个思路,建议参考我的代码,看看是否能理解:传送门:https://github.com/liuyubobobo/Play-Leetcode/blob/master/0206-Reverse-Linked-List/cpp-0206/main.cpp
核心代码(C++):
class
Solution {
public
:
ListNode* reverseList(ListNode* L) {
ListNode* p, *r;
p = L->next;
while
(p != NULL){
r = p->next;
L->next = p;
p = r;
}
return
L->next;
};
其中,cur是当前的节点,pre是当前节点的前一个节点,next是当前节点的下一个节点。循环里做的事情,是不断地把cur的next指向pre,同时cur向前移动(相应的pre也要向前移动)
看看能否理解?是否还有问题?
继续加油!:)
L-next都指向null了,p-next指向L->next不是指向null吗?在代码里p-next为什么会指向L的下一个节点?
嗯,我看了一遍截图书上的代码,这本书上的代码确实是不对的。我已经在原答案上进行了补充,建议参考我的代码,看看你能否理解?继续加油!:)
登录后可查看更多问答,登录/注册
课程配套大量BAT面试真题,高频算法题解析,强化训练
1.2k 13
1.3k 12
741 11
1.6k 10
1.3k 10
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号