题解 | #反转链表#

反转链表

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

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 *	ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
#include <csignal>
#include <cstddef>
#include <cstdlib>
#include <stack>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    ListNode* ReverseList(ListNode* head) {
        // write code here
        ListNode*phead=nullptr;
        if(head==nullptr || head->next==nullptr)
        {
            return head;
        }
        while(head)
        {
            ListNode*node=head;
            head=head->next;
            node->next=phead;
            phead=node;
        }
        return phead;
    }
    
};

可以使用类似头插法的方式,如果使用栈进行翻转,也可以,这里不用反转,我们自己定义的链表通常只是一个节点,所以不能直接使用指向next的方式进行组建链表,我们创建一个零时的节点node用来存储值,当他获得值后,便可指向下一个节点,指向为空,然后赋值给phead,下一次循环,继续在phead前面插入,也就是头插法,phead的最后也指向了nullptr,防止回环

全部评论

相关推荐

牛客840099999号:没见过这样的大厂,至少头部的肯定没有
点赞 评论 收藏
分享
03-13 16:51
已编辑
门头沟学院 硬件开发
点赞 评论 收藏
分享
好消息是活的像个人了,周末可以约会吃饭打游戏了坏消息是钱没了,当初来小红书就是为了钱啊哭笑不得😭
犯困嫌疑人:好事儿啊,取消大小周能有更多自己的时间,周末还能约对象玩,这不美滋滋?
投递小红书等公司10个岗位 > 小红书取消大小周
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务