题目描述
输入一个链表,反转链表后,输出链表的所有元素。

首先定义newH=null,*p1=3为头指针。储存下一个节点temp=p1->next;
然后3成为新链表的表尾,指向空,有p1->next=newH,此时,表头为newH,newH=p1,然后处理下一个节点,p1=temp;

这是一步的结果,最终得到

/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
if(pHead==NULL||pHead->next==NULL)
return pHead;
ListNode* p1=pHead;
ListNode* newH=NULL;
while(p1)
{
ListNode* temp=p1->next; //临时存放下一个节点
p1->next=newH; //链表翻转
newH=p1; //新链表
p1=temp;
}
return newH;
}
};
本文详细介绍了链表的反转过程及其实现代码。通过定义新的头部节点和临时存储当前节点的下一个节点,逐步将原链表节点指向新的头部节点,完成链表的反转。
1108

被折叠的 条评论
为什么被折叠?



