首页 > 编程语言 > 详细

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

时间:2015-07-21 12:51:57      阅读:281      评论:0      收藏:0      [点我收藏+]

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++

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!