LeetCode反转链表

改变头结点代码:

java 复制代码
/**
 * 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 prev=null;  //定义一个空结点,表示反转之后
        while(head!=null){
            ListNode next=head.next;  //定义头结点的下一个结点
            head.next=prev;   //反转链表
            prev=head;   // prev前进
            head=next;  //head 前进
        }
        return prev;
        
    }
}

不改变头节点代码:

java 复制代码
/**
 * 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) {
        /*改变head
        ListNode prev=null;  //定义一个空结点,表示反转之后
        while(head!=null){
            ListNode next=head.next;  //定义头结点的下一个结点
            head.next=prev;   //反转链表
            prev=head;   // prev前进
            head=next;  //head 前进
        }
        return prev;
        */
        ListNode current=head; //用current代替head,head表示不变
        ListNode prev=null;  //定义一个空结点,表示反转之后
        while(current!=null){
            ListNode next=current.next;
            current.next=prev;
            prev=current;
            current=next;
        }
        return prev;
        
    
        
    }
}
相关推荐
imaol11 小时前
链表 -- 环链表
java·前端·链表
imaol11 小时前
链表 -- 双向链表
java·前端·链表
lsylalalala2 小时前
常见的排序算法1
数据结构·算法·排序算法
想吃火锅10053 小时前
【leetcode】54. 螺旋矩阵
算法·leetcode·矩阵
想吃火锅10053 小时前
【leetcode】300. 最长递增子序列
算法·leetcode·职场和发展
imaol13 小时前
数据结构---队列
java·数据结构·算法
数模竞赛Paid answer3 小时前
2026年电工杯数学建模A题绿电直连型电氢氨园区优化运行求解全过程论文及程序
算法·数学建模·电工杯
疯狂打码的少年3 小时前
【数据结构】串的模式匹配:KMP算法(重点)
数据结构·笔记·算法
晚风醉蝶4 小时前
第零篇-算法全景图
算法
疯狂打码的少年5 小时前
【数据结构】树的基本概念与二叉树定义
java·数据结构·笔记·算法