/*
* 链表反转
* */
public class Node {
public int value;
public Node next;
public Node(int data) {
this.value = data;
}
#方法一:
public static Node reverse(Node head) {
if (head == null || head.next == null)
return head;
Node temp = head.next;
Node newHead = reverse(head.next);
temp.next = head;
head.next = null;
return newHead;
}
#方法二:
public static Node reverseList(Node node) {
Node pre = null;
Node next;
while (node != null) {
next = node.next;
node.next = pre;
pre = node;
node = next;
}
return pre;
}
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 reverse = reverse(node1);
Node reverse = reverseList(node1);
System.out.println(reverse);
}
}
链表反转(2种方法)
最新推荐文章于 2023-12-03 18:23:51 发布