单链表的逆转
利用3个指针遍历单链表,逐个链接点进行反转。
/*
只需要完成逆置链表函数
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*p,*q,*r;
p = pHead;
q = pHead->next;
pHead->next = NULL;
while(q)
{
r = q->next;
q->next = p;
p = q;
q = r;
}
pHead=p;
return pHead;
}
};
参考:http://blog.youkuaiyun.com/feliciafay/article/details/6841115
本文介绍了一种通过三个指针遍历单链表并逐个节点进行反转的方法,实现链表的逆置。该方法首先判断链表是否为空或只有一个元素,如果满足则直接返回原链表头;接着定义三个指针p、q、r,通过循环操作实现链表的逆序。
1206

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



