码迷,mamicode.com
首页 > 编程语言 > 详细

leetcode之链表-单链表反转-C++

时间:2015-07-21 12:54:18      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:leetcode   链表-单链表反转   c++   

ReverseLinked List

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

迭代版本:


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.	        ListNode *p;  
13.	        ListNode *q;  
14.	        ListNode *r;  
15.	          
16.	        if(head == NULL || head->next == NULL)  
17.	        {  
18.	            return head;  
19.	        }  
20.	        else  
21.	        {  
22.	            p = head;  
23.	            q = head->next;  
24.	            head->next = NULL;  
25.	              
26.	            while(q)  
27.	            {  
28.	                r = q->next;  
29.	                q->next = p;  
30.	                p = q;  
31.	                q = r;  
32.	            }  
33.	            head = p;  
34.	        }  
35.	        return head;  
36.	    }  
37.	};  


版权声明:本文为博主原创文章,未经博主允许不得转载。

leetcode之链表-单链表反转-C++

标签:leetcode   链表-单链表反转   c++   

原文地址:http://blog.csdn.net/csdnjack_/article/details/46982673

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!