P2-链表反转-递归

2021-05-04  本文已影响0人  YonchanLew
//反转链表
public class ReverseList {
 
    static class ListNode{
        int val;
        ListNode next;
 
        public ListNode(int val, ListNode next){
            this.val = val;
            this.next = next;
        }
 
        public static ListNode recursion(ListNode head){
 
            if(head == null || head.next == null) {
                return head;
            }
 
            ListNode new_head = recursion(head.next);
 
            head.next.next = head;
            head.next = null;
 
            return new_head;
        }
 
        public void printList(){
            System.out.println(this.val);
            ListNode curr = this;
            while(curr.next != null) {
                System.out.println(curr.next.val);
                curr = curr.next;
            }
        }
    }
 
    public static void main(String[] args) {
        ListNode node5 = new ListNode(5, null);
        ListNode node4 = new ListNode(4, node5);
        ListNode node3 = new ListNode(3, node4);
        ListNode node2 = new ListNode(2, node3);
        ListNode node1 = new ListNode(1, node2);
        node1.printList();
        ListNode.recursion(node1);
        node5.printList();
 
    }
 
}
上一篇 下一篇

猜你喜欢

热点阅读