题解 | 反转链表

反转链表

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

#include<stdio.h>
#include<stdlib.h>
  
 
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param head ListNode类 
 * @return ListNode类
 */
/*方法一struct ListNode* ReverseList(struct ListNode* head ) {
    struct ListNode*first=NULL;
    struct ListNode*second=head;
    struct ListNode*third;
    while(second!=NULL){
        third=second->next;
        second->next=first;
        first=second;
        second=third;
    }
    return first;

}*///三指针迭代法
/*方法二struct ListNode* ReverseList(struct ListNode* head){
    if(head==NULL||head->next==NULL){
        return head;

    }
    struct ListNode* newhead=ReverseList(head->next);
        head->next->next=head;
        head->next=NULL;
    
return newhead;
}*/
/*方法三*/struct ListNode* ReverseList(struct ListNode* head){
    struct ListNode*newhead=NULL;
    struct ListNode*p;
    while(head!=0){
        p=head;
        head=head->next;
        p->next=newhead;
        newhead=p;
    }
    return newhead;
}

全部评论

相关推荐

05-19 19:54
已编辑
杭州电子科技大学 Java
程序员小白条:《备考软考软件设计师》中级很简单的,不需要花很多时间,除非考软高,这简历找找杭州本地中小厂吧,也很难,项目这块还是最好有自己开发的思考,不要网上的亮点搬过来就行,看运气,本地有优势
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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