题解 | #反转链表#

反转链表

https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */

/**
 * 
 * @param pHead ListNode类 
 * @return ListNode类
 */
 //方法一;指针颠倒
 /*
struct ListNode* ReverseList(struct ListNode* pHead ) {
    // write code here
    struct ListNode *pre=NULL ,*cur;
    cur=pHead;
    if(pHead==NULL||pHead->next==NULL)
    {
        return pHead;
    }
    else
    {
        while(cur->next!=NULL)
        {
            struct ListNode *temp;
            temp=cur->next;
            cur->next=pre;
            pre=cur;
            cur=temp;
            //cur=cur->next;
        }
        cur->next=pre;
        pre=cur;

    }
    return pre; 
}
*/
//方法二:依次取出结点,并且头插
struct ListNode* ReverseList(struct ListNode* pHead ) 
{
    if(pHead==NULL||pHead->next==NULL)
    {
        return pHead;
    }
    else
    {
        struct ListNode *pre,*cur;
        cur=pHead;
        struct ListNode *first=NULL;
        while(cur->next!=NULL)
        {
            struct ListNode *temp;
            if(first==NULL)
            {
                temp=cur->next;
                cur->next=first;
                first=cur;
                cur=temp;
            }
            else
            {
                temp=cur->next;
                cur->next=first;
                first=cur;
                cur=temp;
            }

        }
        cur->next=first;
        first=cur;
        return first;
    }
    
}

全部评论

相关推荐

我:“加班需要有加班工资。” hr:“为什么?” 哈哈哈哈哈哈哈离大谱
juntenor:你确实太理想化了,对社会不了解呀。这个和HR没有关系,这是国内特色,不然怎么还会有外包就这种逆天的存在呢。
点赞 评论 收藏
分享
VirtualBool:都去逗他了?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务