leetcode 206. Reverse Linked List

来源:互联网 发布:四川广电网络网上缴费 编辑:程序博客网 时间:2024/06/13 15:38

Reverse a singly linked list.

click to show more hints.

Hint:

A linked list can be reversed either iteratively or recursively. Could you implement both?

递归:

/** * 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) {        if(head == NULL || head->next == NULL) return head;        ListNode* newhead = reverseList(head->next);        head->next->next = head;        head->next = NULL;        return newhead;    }};

循环:

/** * 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) {        if(head == NULL || head->next == NULL) return head;        ListNode* newhead = NULL;        ListNode* p = head;        while(p){            ListNode* tmp = p;            p = p->next;            tmp->next = newhead;            newhead = tmp;        }        return newhead;    }};






0 0
原创粉丝点击