要点,三个标识指针,来回交换,将遍历到的节点放在首节点头部。
//leetcode反转反转链表
struct ListNode*reverselist(struct ListNode*Node)
{
if(!Node||!Node->next)//判断前提条件,传进来的指针是否为空
return Node;
struct ListNode *p=Node,*pnext=Node->next,*pnextnext=pnext;
while(NULL!=pnext)
{
pnextnext=pnext->next;
pnext->next=p;
p=pnext;
pnext=pnextnext;
}
Node->next=NULL;
return (Node=p1);
}