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;

	}
}


相关文章推荐

Swap Nodes in Pairs (LeetCode Algorithm Problems)

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

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

题目描述: Given a linked list, swap every two adjacent nodes and return its head. For example, ...

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

Swap Nodes in Pairs

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next...

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

Swap Nodes in Pairs

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

【LeetCode】Swap Nodes in Pairs

题目描述:Given a linked list, swap every two adjacent nodes and return its head.For example, Given 1->2...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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