Leetcode 206. Reverse Linked List | | Leetcode 206. Reverse Linked List 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Description 2. Solution Iteratively 1234567891011121314151617181920212223/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* reverseList(ListNode* head) { ListNode* pre = nullptr; ListNode* next = nullptr; ListNode* current = head; while(current) { next = current->next; current->next = pre; pre = current; current = next; } return pre; }}; Recursively 1234567891011121314151617181920212223242526272829/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* reverseList(ListNode* head) { return reverse(head, nullptr); } private: ListNode* reverse(ListNode* current, ListNode* pre) { if(!current) { return nullptr; } ListNode* next = current->next; if(next) { current->next = pre; return reverse(next, current); } current->next = pre; return current; } }; Reference https://leetcode.com/problems/reverse-linked-list/description/ 如果有收获,可以请我喝杯咖啡! 赏 微信打赏 支付宝打赏