Java反转单链表

发布时间:2024年01月12日

?

/**
 * 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; }
 * }
 */
//核心思想,利用cur和Curnext分别记录head的前驱和cur的前驱,再去改变箭头方向
class Solution {
    public ListNode reverseList(ListNode head) {
        if(head==null)return head;//为空的链表
        if(head.next==null)return head;//一个值反转还是自己
        ListNode cur=head.next;
        ListNode Curnext;
        head.next=null;//第一个节点的值会变成转换完成的最后一个节点,需要手动改变指向null
        while(cur!=null){
            Curnext=cur.next; 
            cur.next=head;//改变箭头方向
            head=cur;
            cur=Curnext;
        }    
        return head;
    }
}

反转一个单链表

文章来源:https://blog.csdn.net/weixin_54783024/article/details/135554077
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。