当前位置: 首页 > news >正文

力扣206.反转链表

题目链接:206. 反转链表 - 力扣(LeetCode)

给你单链表的头节点 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 reverseList(ListNode head) {ListNode pre=null;ListNode curr=head;ListNode tmp=null;while(curr!=null){tmp=curr.next;//临时指针,趁curr和下一个结点还连着的时候保存curr.nextcurr.next=pre;pre=curr;curr=tmp;}return pre;}
}

递归:

/*** 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 reverseList(ListNode head) {//递归return reverse(head,null);}public ListNode reverse(ListNode curr,ListNode pre){if(curr==null){return pre;}else{ListNode tmp=null;tmp=curr.next; //保存下一个结点curr.next=pre; //反转return reverse(tmp,curr);}}
}


http://www.mrgr.cn/news/45807.html

相关文章:

  • 栈_1(2024年10月08日)
  • idea2024版本maven依赖刷新规则
  • JUC-synchronized 知多少
  • 【重学 MySQL】六十一、数据完整性与约束的分类
  • 世界职业院校技能大赛(大数据技术与应用)参赛项目介绍内容模拟示例参考
  • C语言— exec系列函数
  • java泛型
  • 【java数据结构】ArrayList实例
  • webpack学习
  • java8 双冒号(::)使用方法
  • 【C++ 11】for 基于范围的循环
  • 以后再也不要说程序员不能拿诺贝尔了
  • CentOS7 虚拟机操作系统安装及相关配置教程
  • 算法:238.除自身以外数组的乘积
  • 简易CPU设计入门:取指令(四)
  • 1打家劫舍三部曲
  • Java中Collections类详解
  • Git管理远程仓库
  • 【动态规划-最长公共子序列(LCS)】【hard】力扣1092. 最短公共超序列
  • rust gio-rs 挂载 samba 磁盘