leetcode:206 Reverse Linked List-每日编程第十四题

来源:互联网 发布:地球人笔记本 知乎 编辑:程序博客网 时间:2024/04/29 03:20

Reverse Linked List

Total Accepted: 65133 Total Submissions: 179691 Difficulty: Easy

Reverse a singly linked list.

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) {         ListNode* pre = NULL;         ListNode* next;         while(head!=NULL){             next=head->next;             head->next=pre;             pre=head;             head=next;         }         return pre;     } };

递归:

 1 /** 2  * Definition for singly-linked list. 3  * struct ListNode { 4  *     int val; 5  *     ListNode *next; 6  *     ListNode(int x) : val(x), next(NULL) {} 7  * }; 8  */ 9 class Solution {10 public:11     ListNode* reverseList(ListNode* head) {12         if(head==NULL){13             return NULL;14         }15         if(head->next==NULL){16             return head;17         }else{18             ListNode* tem=reverseList(head->next);19             head->next->next=head;20             head->next=NULL;21             return tem;22         }23         24     }25 };


0 0
原创粉丝点击