力扣--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),递归调用需要消耗栈空间

相关推荐
灵感__idea2 小时前
Hello 算法:“走一步看一步”的智慧
前端·javascript·算法
lwf0061643 小时前
导数学习日记
学习·算法·机器学习
头发够用的程序员4 小时前
从滑动窗口到矩阵运算:img2col算法基本原理
人工智能·算法·yolo·性能优化·矩阵·边缘计算·jetson
武帝为此5 小时前
【数据清洗缺失值处理】
python·算法·数学建模
Halo_tjn5 小时前
Java 基于字符串相关知识点
java·开发语言·算法
念越5 小时前
算法每日一题 Day08|双指针法解决三数之和
算法·力扣
黎阳之光6 小时前
黎阳之光透明管理:视频孪生重构智慧仓储新范式
人工智能·算法·安全·重构·数字孪生
6Hzlia6 小时前
【Hot 100 刷题计划】 LeetCode 199. 二叉树的右视图 | C++ DFS 逆序遍历
c++·leetcode·深度优先
CappuccinoRose7 小时前
回溯法 - 软考备战(四十三)
算法·排列组合·路径·n皇后·子集·解数独·岛屿
AC赳赳老秦7 小时前
OpenClaw进阶技巧:批量修改文件内容、替换关键词,解放双手
java·linux·人工智能·python·算法·测试用例·openclaw