两两交换链表中的节点
2017-03-31 08:23
225 查看
题目:两两交换链表中的节点
问题描述:给一个链表,两两交换其中的节点,然后返回交换后的链表。如:给出
你应该返回的链表是
思路:通过改变指针指向的元素改变两个元素的位置。
代码:
class Solution {
public:
/**
* @param head a ListNode
* @return a ListNode
*/
ListNode* swapPairs(ListNode* head) {
// Write your code here
if(!head)return NULL;
if(head&&head->next){
ListNode*a = head;
ListNode*b =head->next;
a->next = b->next;
b->next = a;
head=b;
}
else return head;
ListNode*temp = head->next;
while(temp&&temp->next&&temp->next->next){
ListNode*a = temp->next;
ListNode*b = temp->next->next;
a->next = b->next;
b->next = a;
temp->next = b;
4000
temp = a;
}
return head;
}
};
感想:即使有很多个节点相互变化,也不要弄混,可以通过画图来确定代码。
问题描述:给一个链表,两两交换其中的节点,然后返回交换后的链表。如:给出
1->2->3->4,
你应该返回的链表是
2->1->4->3。
思路:通过改变指针指向的元素改变两个元素的位置。
代码:
class Solution {
public:
/**
* @param head a ListNode
* @return a ListNode
*/
ListNode* swapPairs(ListNode* head) {
// Write your code here
if(!head)return NULL;
if(head&&head->next){
ListNode*a = head;
ListNode*b =head->next;
a->next = b->next;
b->next = a;
head=b;
}
else return head;
ListNode*temp = head->next;
while(temp&&temp->next&&temp->next->next){
ListNode*a = temp->next;
ListNode*b = temp->next->next;
a->next = b->next;
b->next = a;
temp->next = b;
4000
temp = a;
}
return head;
}
};
感想:即使有很多个节点相互变化,也不要弄混,可以通过画图来确定代码。
相关文章推荐
- 两两交换链表中的节点
- LintCode-两两交换链表中的节点
- lintcode 451 两两交换链表中的节点
- 两两交换链表中的节点
- 两两交换链表中的节点
- 两两交换链表中的节点
- 两两交换链表中的节点
- 两两交换链表中的节点
- 451 - 两两交换链表中的节点
- lintcode-451-两两交换链表中的节点
- 两两交换链表中的节点
- LintCode 两两交换链表中的节点
- python_lintcode_737. Find Elements in Matrix_451. 两两交换链表中的节点
- 两两交换链表中的节点
- 两两交换链表中的节点
- (Java) LeetCode 24. Swap Nodes in Pairs —— 两两交换链表中的节点
- 两两交换链表中的节点
- LintCode:两两交换链表中的节点
- 两两交换链表中的节点
- 【LintCode 简单】451. 两两交换链表中的节点