题解 | #反转链表#

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
#定义三个指针,pre,cur和next,分别表示前向节点、当前节点和后继节点,通过改变cur指针的后续节点为pre,并不断前移三个指针,最终实现链表反转。
class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
        if(pHead==NULL||pHead->next==NULL){
            return pHead;
        }else{
            ListNode* pre = NULL;
            ListNode* cur = pHead;
            ListNode* next= NULL;
            while(cur!=NULL){
                next = cur->next;
                cur->next=pre;
                pre=cur;
                cur=next;
            }
            return pre;
        }
    }
};

全部评论

相关推荐

11-06 16:50
门头沟学院 Java
用微笑面对困难:word打字比赛二等奖的我,也要来凑合凑合
点赞 评论 收藏
分享
09-14 17:23
门头沟学院
故事和酒66:所以说副业很重要,程序员干到40岁,再怎么也赚300万了,吃吃利息也够活下去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务