题目:反转链表
题目描述
输入一个链表,反转链表后,输出新链表的表头。
解题思路
参考代码
/*
public class ListNode
{
public int val;
public ListNode next;
public ListNode (int x)
{
val = x;
}
}*/
class Solution
{
public ListNode ReverseList(ListNode pHead)
{
// write code here
ListNode pReversedHead = null; //反转过后的单链表存储头结点
ListNode pNode = pHead; //定义pNode指向pHead
ListNode pPrev = null; //定义存储前一个结点
while(pNode != null)
{
ListNode pNext = pNode.next; //定义pNext指向pNode的下一个结点
if(pNext == null) //如果pNode的下一个结点为空,则pNode即为结果
pReversedHead = pNode;
pNode.next = pPrev; //修改pNode的指针域指向pPrev
pPrev = pNode; //将pNode结点复制给pPrev
pNode = pNext; //将pNode的下一个结点复制给pNode
}
return pReversedHead; //返回新链表的表头
}
}