力扣--LCR 141.训练计划III

题目

给定一个头节点为 head 的单链表用于记录一系列核心肌群训练编号,请将该系列训练编号 倒序 记录于链表并返回。

示例 1:

输入:head = 1,2,3,4,5

输出:5,4,3,2,1

示例 2:

输入:head = 1,2

输出:2,1

示例 3:

输入:head = \[\]

输出:\[\]

提示:

复制代码
链表中节点的数目范围是 [0, 5000]
-5000 <= Node.val <= 5000

代码

/**

  • Definition for singly-linked list.

  • public class ListNode {

复制代码
  int val;
复制代码
  ListNode next;
复制代码
  ListNode() {}
复制代码
  ListNode(int val) { this.val = val; }
复制代码
  ListNode(int val, ListNode next) { this.val = val; this.next = next; }
  • }

    */

    class Solution {

    public ListNode trainningPlan(ListNode head) {

    if(headnull||head.nextnull){

    return head;

    }

    ListNode cur = head, pre = null;

    复制代码
     while(cur != null){
         ListNode temp = cur.next;
         cur.next = pre;
         pre = cur;
         cur = temp;
     }
    
     return pre;

    }

    }

    时间复杂度:O(N)

    额外空间复杂度 O(1)

递归

// 递归

public ListNode reverseList(ListNode head) {

if(head == null || head.next == null){

return head;

}

// 反转子链表

ListNode temp = reverseList(head.next);

head.next.next = head;

head.next = null;

复制代码
    return temp;
}

时间复杂度:O(N)

额外空间复杂度 O(n),递归调用需要消耗栈空间

相关推荐
Jerry2 小时前
LeetCode 189. 轮转数组
算法
Jerry2 小时前
LeetCode 739. 每日温度
算法
2601_954526757 小时前
【工业传感与算法实战】温漂补偿与零点抗漂破局:基于二阶多项式拟合的 C/C++ 边缘校准算法,深度拆解“压力变送器什么牌子好”的技术硬指标
c语言·c++·算法
叩码以求索8 小时前
浅谈:算法萌新如何高效刷题应对面试(一)
算法·面试·职场和发展
谙弆悕博士9 小时前
信息系统项目管理师教程(第4版)笔记——第 2 章 信息技术发展
笔记·职场和发展·软考高级·软考·高项·项目经理
c238569 小时前
把 C++ 内存分配拆透:new 与 malloc 的三层血缘
开发语言·c++·算法
aaaameliaaa10 小时前
指针之总结
c语言·笔记·算法
宵时待雨11 小时前
优选算法专题9:哈希表
数据结构·算法·散列表
txzrxz11 小时前
最短路问题——Dijkstra 算法
数据结构·c++·算法·最短路·优先队列
gwf21611 小时前
磨损均衡算法(Wear Leveling)——SSD如何让每块闪存“公平退休“?
运维·数据库·人工智能·python·嵌入式硬件·算法·智能硬件