反转链表——牛客网

描述

给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。
 
数据范围: 0n1000
要求:空间复杂度 O(1),时间复杂度 O(n) 。
 
如当输入链表{1,2,3}时,
经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。
以上转换过程如下图所示:

示例1

输入:
{1,2,3}
返回值:
{3,2,1}

示例2

输入:
{}
返回值:
{}
说明:
空链表则输出空   

AC代码

复制代码
/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
        if (head == null) {
            return null;
        }
        
        // 只有一个节点,直接返回
        if (head.next == null) {
            return head;
        }
        
        ListNode newHead = head;
        ListNode tail = newHead;
        ListNode p = tail.next;
        while (p != null) {
            ListNode tmp = p.next;
            p.next = newHead;
            newHead = p;
            tail.next = null;
            p = tmp;
        }
        
        return newHead;
    }
}
复制代码

原题链接:https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca?tpId=295&tqId=23286&ru=%2Fpractice%2F886370fe658f41b498d40fb34ae76ff9&qru=%2Fta%2Fformat-top101%2Fquestion-ranking&sourceUrl=%2Fexam%2Foj

posted @   没有你哪有我  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
历史上的今天:
2021-05-28 LeetCode每日一题——477. 汉明距离总和(位运算)
点击右上角即可分享
微信分享提示