码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode Swap Nodes in Pairs

时间:2015-03-06 10:02:54      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

1.题目

Given a linked list, swap every two adjacent nodes and return its head.

For example,
Given 1->2->3->4, you should return the list as 2->1->4->3.

Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.


2.解决方案


class Solution {
public:
   
    ListNode *swapPairs(ListNode *head) {
       ListNode* returnNode  = head;

	ListNode* preNode = NULL;
	while(head != NULL && head->next != NULL){
		ListNode* firstNode = head;
		ListNode* secondNode = head->next;

		if(preNode != NULL){//first node
			preNode->next = secondNode;
		}else{
			if(secondNode != NULL){
				returnNode = secondNode;
			}
		}
		firstNode->next = secondNode->next;
		secondNode->next = firstNode;


		preNode = head;
		head = head->next;
	}

	return returnNode;

    }
};

思路:这题还是比较简单的。while循环,交换两个指针而已。但要注意细节以及返回的值。


http://www.waitingfy.com/archives/1583


LeetCode Swap Nodes in Pairs

标签:

原文地址:http://blog.csdn.net/fox64194167/article/details/44086999

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