java实现链表反转完整代码

下面是Java实现链表反转的完整代码:

class ListNode {
    int val;
    ListNode next;
  
    public ListNode(int val) {
        this.val = val;
        this.next = null;
    }
}

public class LinkedListReverse {
    public static ListNode reverseList(ListNode head) {
        ListNode prev = null;
        ListNode curr = head;
        
        while (curr != null) {
            ListNode nextTemp = curr.next;
            curr.next = prev;
            prev = curr;
            curr = nextTemp;
        }
        
        return prev;
    }
  
    public static void main(String[] args) {
        ListNode head = new ListNode(1);
        ListNode node2 = new ListNode(2);
        ListNode node3 = new ListNode(3);
        ListNode node4 = new ListNode(4);
        ListNode node5 = new ListNode(5);
        
        head.next = node2;
        node2.next = node3;
        node3.next = node4;
        node4.next = node5;
        
        ListNode reversedHead = reverseList(head);
        
        System.out.print("Reversed Linked List: ");
        
        while (reversedHead != null) {
            System.out.print(reversedHead.val + " ");
            reversedHead = reversedHead.next;
        }
    }
}

以上代码定义了一个ListNode类,表示链表节点。然后,在LinkedListReverse类中,我们实现了一个静态方法reverseList,用于反转链表。该方法使用了三个指针prev、curr和nextTemp,分别表示当前节点的前一个节点、当前节点和当前节点的下一个节点,通过遍历链表,不断将当前节点的next指针指向前一个节点,实现了链表的反转。

在main方法中,创建了一个简单的链表,并调用reverseList方法反转链表。最后,通过遍历反转后的链表,打印出结果。

运行以上代码,将输出打印出反转后的链表的节点值:5 4 3 2 1

版权申明:财旺号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 ptswitchtang@qq.com 举报,一经查实,本站将立刻删除。

(0)
小二的头像小二

相关推荐

  • sql执行失败是什么意思

    SQL执行失败意味着在执行SQL查询、插入、更新或删除等操作时发生了错误。通常,当执行SQL语句时,数据库系统会查找和执行相应的操作,如果SQL语句有任何错误或问题,执行过程中就会抛出异常,返回执行失败的消息。 失败的原因可能有很多,常见的包括以下情况: 1. 语法错误:SQL语句中可能存在语法错误,例如缺少关键字、拼写错误、不存在的表或列等。 2. 约束冲…

    2023年12月4日
    00
  • java大量数组去重

    在Java中,有多种方法可以对大量数组进行去重。下面就介绍几种常用的方法。 1. 使用Set。通过使用HashSet或TreeSet类,可以将数组元素存储到Set中,这样可以自动去除重复元素。 int[] array = {1, 2, 3, 4, 2, 3, 5, 6, 4}; Set set = new HashSet(); for (int i : ar…

    2023年11月18日
    00
  • php数组添加键值对

    添加键值对到数组可以使用以下两种方法: 1. 使用`array_push()`函数添加键值对到数组末尾: $myArray = array(); // 声明一个空数组 // 添加键值对到数组末尾 array_push($myArray, “键1”, “值1”); array_push($myArray, “键2”, “值2”); 2. 直接使用键名对应的赋值…

    2023年11月18日
    00
  • mysql导入数据表时判断是否存在异常状态

    在MySQL中导入数据表时,可以通过检查导入过程中是否发生异常来判断是否存在异常状态。以下是一些可能出现的异常情况和对应的处理方法: 1. 语法错误:如果导入的SQL文件中存在语法错误,MySQL会抛出相应的错误信息。可以查看导入过程中的错误信息,并对错误进行修正。 2. 表已存在:如果导入的数据表在目标数据库中已经存在,MySQL会抛出”Tab…

    2023年11月17日
    00
  • java输出字符串和数字

    在Java中,要输出字符串和数字可以使用不同的方法。以下是一些常见的方法: 1. 输出字符串:使用System.out.print()或System.out.println()方法可以输出字符串。例如: String str = “Hello, World!”; System.out.print(str); System.out.println(str); …

    1天前
    00

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注