首页 > 代码库 > Java实现单链表反转
Java实现单链表反转
本文主要介绍单链表反转的两种方法,记录如下:
1.
package com.leetcode; public class ListReverse { public static void main(String[] args) { Node node1 = new Node(1); Node node2 = new Node(2); Node node3 = new Node(3); Node node4 = new Node(4); node1.next = node2; node2.next = node3; node3.next = node4; Node head = reverse(node1); while(head != null){ System.out.println(head.val); head = head.next; } } public static Node reverse(Node head){ Node cur = head, post = head.next; head.next = null; while(post != null){ Node tmp = post; post = post.next; tmp.next = cur; cur = tmp; } return cur; } static class Node{ int val; Node next; Node(int val){ this.val = val; this.next = null; } } }
运行结果为:
4 3 2 1
2.
package com.leetcode; public class ListReverse { public static void main(String[] args) { Node node1 = new Node(1); Node node2 = new Node(2); Node node3 = new Node(3); Node node4 = new Node(4); node1.next = node2; node2.next = node3; node3.next = node4; Node head = reverse(node1); while(head != null){ System.out.println(head.val); head = head.next; } } public static Node reverse(Node head){ Node dummy = new Node(-1); dummy.next = head; Node pre = dummy, cur = head, post = head.next; while(post != null){ cur.next = post.next; post.next = pre.next; pre.next = post; post = cur.next; } return dummy.next; } static class Node{ int val; Node next; Node(int val){ this.val = val; this.next = null; } } }
运行结果为:
4 3 2 1
Java实现单链表反转
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。