206. Reverse Linked List #Linked List (Easy)

Problem:

Reverse a singly linked list.

Solution:

//my solution
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if(head == NULL || head->next == NULL) return head;
        ListNode* it = head;
        ListNode* prev = NULL;
        ListNode* next = it->next;
        while(1)
        {
            it->next = prev;
            prev = it;
            it = next;
            if(it == NULL) break;
            next = it->next;
        }
        head = prev;
        return head;
    }
};
//recursion solution
class Solution {
public:   
    ListNode* reverseList(ListNode* head) {
        if (!head || !(head -> next)) return head;
        ListNode* node = reverseList(head -> next);
        head -> next -> next = head;
        head -> next = NULL;
        return node; 
    }
}; 

LeetCode Discussion

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,351评论 0 33
  • 位于重庆商职院的一片格桑花,花开之际遍地的黄色花海,仿佛再与日月争刹光华。
    酒乃鱼爱吃大脸猫阅读 1,059评论 0 0
  • 异常: 所有异常的父类是Throwable类,它的两个子类:Error,Exception Error: Erro...
    edwin1993阅读 1,631评论 0 0
  • 那时候坐在地头玩泥巴 那时候跑到河滩挖粗沙 那时候没有洋娃娃 也没有游乐场可以去耍 我们都喜欢在草堆里滚打 在田间...
    木辛阿梓阅读 669评论 0 1