Swap Nodes in Pairs

转载 2016年05月30日 11:05:08
  1. struct ListNode {  
  2.     int val;  
  3.     ListNode *next;  
  4.     ListNode(int x) : val(x), next(NULL) {}  
  5. };  
  6. class Solution {  
  7. public:  
  8.     ListNode *swapPairs(ListNode *head) {  
  9.         ListNode** curNext = &head;  
  10.         while(NULL != *curNext && NULL != (*curNext)->next)  
  11.         {  
  12.             ListNode* temp = (*curNext)->next;  
  13.             (*curNext)->next = (*curNext)->next->next;  
  14.             temp->next = *curNext;  
  15.             *curNext = temp;  
  16.             curNext = &(*curNext)->next->next;  
  17.         }  
  18.         return head;  
  19.     }  

  1. };  
在网上搜到了这份代码,用二级指针的方法解决pre节点的指向问题。其中二级指针curNext起了两个作用,一个是持有节点的地址,供其他节点指过来,一个是持有指针的地址,用解运算修饰符*修改指针的指向。


当然,直接用一级指针容易理解一些,不过需要在循环中做一次指针是否为空的判断:

ListNode *swapPairs(ListNode *head) {
	ListNode *first, *second, *temp;

	if (!head || !head->next) {
		return head;

	}
	else {
		first = head;
		second = first->next;
		head = second;
		temp = first;
		while (first && second) {
			temp->next = second;
			first->next = second->next;
			second->next = first;
			temp = first;
			first = first->next;
			if (first != NULL) {
				second = first->next;

			}

		}
		return head;

	}
}


【LeetCode-面试算法经典-Java实现】【024-Swap Nodes in Pairs(成对交换单链表的结点)】

【024-Swap Nodes in Pairs(成对交换单链表的结点)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a linked list, swap...

LeetCode | Swap Nodes in Pairs(将链表中的元素两两交换)

Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2-...

Swap Nodes in Pairs (LeetCode Algorithm Problems)

这道题应该是一道编程语言题,因为要解决的问题是链表的操作。原题链接Given a linked list, swap every two adjacent nodes and return its h...

Swap Nodes in Pairs--LeetCode

Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2->3->...

LeetCode24. Swap Nodes in Pairs

LeetCode24. Swap Nodes in Pairs

Leetcode-Swap Nodes in Pairs

作者:disappearedgod 文章出处:http://blog.csdn.net/disappearedgod/article/details/23793109 时间:2014-4-...

LeetCode - Swap Nodes in Pairs

题注 这道题吧,看起来挺简单的,但是里面涉及到一些细节问题,很容易就错了,在实现之前最好仔细考虑一下各个细节。 问题 Given a linked list, swap every two adja...

【LeetCode】Swap Nodes in Pairs

题目描述:Given a linked list, swap every two adjacent nodes and return its head.For example, Given 1->2...
  • buptwds
  • buptwds
  • 2015年09月12日 22:08
  • 277

( Leetcode 24) Swap Nodes in Pairs

题目:Swap Nodes in Pairs Given a linked list, swap every two adjacent nodes and return its head. ...

24. Swap Nodes in Pairs [easy] (Python)

题目链接https://leetcode.com/problems/swap-nodes-in-pairs/题目原文 Given a linked list, swap every two adj...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swap Nodes in Pairs
举报原因:
原因补充:

(最多只允许输入30个字)