15.反转链表

大城市里の小女人 提交于 2019-12-21 03:19:43

题目

输入一个链表,反转链表后,输出新链表的表头。

思路

在这里插入图片描述
在调整节点i的next指针,需要知道节点i的前一个节点h,事先还要保存i的下一个节点j,以防止链表断开。需要定定义三个指针

代码

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
        ListNode* pRversedHead=NULL;
        ListNode* pNode=pHead;
        ListNode* pPrev=NULL;
        while(pNode!=NULL)
        {
            ListNode* pNext=pNode->next;
            
            if(pNext==NULL)
            {
                pRversedHead=pNode;
            }
            
            pNode->next=pPrev;
            pPrev=pNode;
            pNode=pNext;
        }
        return pRversedHead;
    }
};
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!