public class ListNode { int val; ListNode next; ListNode(int x){ val = x; } public void setNext(ListNode next) { this.next = next; } }
public class class_leetcode_反转一个链表 { public static ListNode reverseList(ListNode head){ if(head==null||head.next == null){ return head; } ListNode newHead = reverseList(head.next); head.next.next = head; head.next = null; return newHead; } public static ListNode reverseList2(ListNode head){ if(head==null||head.next == null){ return head; } ListNode newHead = null; while(head!=null){ ListNode tmp = head.next; head.next = newHead; newHead = head; head = tmp; } return newHead; } public static void main(String[] args) { ListNode head = new ListNode(1); ListNode p1 = new ListNode(2); ListNode p2 = new ListNode(3); ListNode p3 = new ListNode(4); ListNode p4 = new ListNode(5); head.setNext(p1); p1.setNext(p2); p2.setNext(p3); p3.setNext(p4); ListNode aa = head; while(head.next!=null) { System.out.println(head.val); head = head.next; } System.out.println(head.val); ListNode A = reverseList2(aa); while(A.next!=null) { System.out.println(A.val); A = A.next; } System.out.println(A.val); } }