两两交换链表中的节点
2017-03-31 13:37
183 查看
一、问题描述
给一个链表,两两交换其中的节点,然后返回交换后的链表。
样例
给出
二、解题思路
新建一个链表,用来存储交换完后的节点,然后再定义一个指针,另它指向head->next,然后每两个交换其中的节点即head->val与head->next->val交换,然后再指向下一个节点,依次遍历完,直到head->next为空。
三、我的代码
class Solution {
public:
/**
* @param head a ListNode
* @return a ListNode
*/
ListNode* swapPairs(ListNode* head) {
ListNode *p=new ListNode(0);
p=head;
while(head!=NULL)
{
if(head->next==NULL)
break;
ListNode *r;
r=head->next;
int val;
val=head->val;
head->val=r->val;
r->val=val;
head=r->next;
}
return p;
}
};
四、我的感想
在交换过程中要细心,注意节点和指针的变换,遇到问题要慢慢来,一步一步的去解决才行。
给一个链表,两两交换其中的节点,然后返回交换后的链表。
样例
给出
1->2->3->4, 你应该返回的链表是
2->1->4->3。
二、解题思路
新建一个链表,用来存储交换完后的节点,然后再定义一个指针,另它指向head->next,然后每两个交换其中的节点即head->val与head->next->val交换,然后再指向下一个节点,依次遍历完,直到head->next为空。
三、我的代码
class Solution {
public:
/**
* @param head a ListNode
* @return a ListNode
*/
ListNode* swapPairs(ListNode* head) {
ListNode *p=new ListNode(0);
p=head;
while(head!=NULL)
{
if(head->next==NULL)
break;
ListNode *r;
r=head->next;
int val;
val=head->val;
head->val=r->val;
r->val=val;
head=r->next;
}
return p;
}
};
四、我的感想
在交换过程中要细心,注意节点和指针的变换,遇到问题要慢慢来,一步一步的去解决才行。
相关文章推荐
- 451. 两两交换链表中的节点(swap-nodes-in-pairs)(c++)----lintcode面试题之链表
- 两两交换链表中的节点
- Java实现-两两交换链表中的节点
- 作业4.451:两两交换链表中的节点
- 两两交换链表中的节点
- [LintCode 451] 两两交换链表中的节点(Python)
- 两两交换链表中的节点-LintCode
- LintCode 两两交换链表中的节点
- 两两交换链表中的节点
- 两两交换链表中的节点
- lintcode——两两交换链表中的节点
- 两两交换链表中的节点
- 两两交换链表中的节点
- 两两交换链表中的节点
- 两两交换链表中的节点
- Swap Nodes in Pairs 链表两两交换节点@LeetCode
- 两两交换链表中的节点
- 链表两两交换节点
- 两两交换链表中的节点
- 两两交换链表中的节点