• + 0 comments

    My Java solution with o(n) time complexity and o(1) space complexity:

    public static SinglyLinkedListNode reverse(SinglyLinkedListNode llist) { if(llist == null) return null; if(llist.next == null) return llist;

        SinglyLinkedListNode curr = llist;
        SinglyLinkedListNode prev = null;
        SinglyLinkedListNode temp = null; 
    
        while(curr != null){
            temp = curr.next;
            //point curr node to prev
            curr.next = prev;
            //set prev = curr node
            prev = curr;
            curr = temp;
        }
    
        return prev;
    }