/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: ListNode* reverseList(ListNode* head) { if(head == NULL || head->next == NULL) return head; ListNode* reverse = NULL; while(head != NULL) { ListNode* next = head->next; head->next = reverse; reverse = head; //cout << reverse->val << "\n"; head = next; } return reverse; } };
class Solution { public: ListNode* reverseList(ListNode *head, ListNode *nextNode = NULL, ListNode *prevNode = NULL) { return head ? reverseList(head->next, (head->next = prevNode, nextNode), head) : prevNode; } };