leetcode反转链表

要点,三个标识指针,来回交换,将遍历到的节点放在首节点头部。

//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);
}

你可能感兴趣的:(LeetCode,链表,struct,遍历,指针)