题解 | #反转链表#

反转链表

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

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param head ListNode类 
 * @return ListNode类
 */
#include <stdio.h>
struct ListNode* ReverseList(struct ListNode* head ) {
    // write code here
    int len=0;
    struct ListNode* test = head;
    while(test){
        test = test->next;
        len++;
    }
    int a[len];
    printf("%d\n", len);
    test = head;
    for(int i=0; i<len; i++){
        a[i] = test->val;
        test = test->next;
    }
    test = head;
    for(int i=len-1; i>=0; i--){
        test->val = a[i];
        test = test->next;
    }
    return head;
}

先计算链表的大小,再用一个数组按顺序保存链表每个节点的值,最后遍历整个列表同时使用数组逆序给链表节点的val赋值。

全部评论

相关推荐

不敢对抗,但我现在拿了offer就要我去实习,这也太久了吧,大四这一年都没得玩了
哞客37422655...:建议企业了解学校课程,直接从小学开始抓计算机三大件,初中培训acm,高中分语言走对应开发路线。高中毕业直接开始夏招。提升互联网高速发展400%
点赞 评论 收藏
分享
点赞 评论 收藏
分享
a了2.5,应该能进面了吧
投递科大讯飞等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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