ReverseLinkedList

reverse Linked List

positive

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17

    public ListNode reverseList(ListNode head) {
        ListNode prev = null;
        ListNode node = head;
        ListNode next = null;
        
        while(node != null){
            next = node.next;
            node.next = prev;
            prev = node;
            node = next;
        }
        
        head = prev; 
        
        return head;
    }

recursive

1
2
3
4
5
6
7
8
9

    public ListNode reverseList(ListNode head) {
        if(head == null || head.next == null) return head;
        
        ListNode result = reverseList(head.next);
        head.next.next = head;
        head.next = null;
        return result;
    }