LintCode 两两交换链表中的节点
2017-03-21 22:51
267 查看
题目描述:
给一个链表,两两交换其中的节点,然后返回交换后的链表。
样例
给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。
思路分析:
这个题直接 更改每个结点的 val值就行了,没必要改变 结点的 逻辑顺序。
我用的一个数组保存下来每个结点的val值就好了~
泡泡一直在这里纠结这个 逻辑顺序。
搞不懂为什么要把问题复杂化。反正他不看我博客。我可以在这使劲黑他。泡泡大吃死。
ac代码:
给一个链表,两两交换其中的节点,然后返回交换后的链表。
样例
给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。
思路分析:
这个题直接 更改每个结点的 val值就行了,没必要改变 结点的 逻辑顺序。
我用的一个数组保存下来每个结点的val值就好了~
泡泡一直在这里纠结这个 逻辑顺序。
搞不懂为什么要把问题复杂化。反正他不看我博客。我可以在这使劲黑他。泡泡大吃死。
ac代码:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: /** * @param head a ListNode * @return a ListNode */ ListNode* swapPairs(ListNode* head) { // Write your code here int sum=0; int a[10005]; while(head!=NULL) { a[sum++]=head->val; head=head->next; } ListNode *r,*f; r=new ListNode(0); f=r; for(int i=0;i<sum;i++) { if(sum%2 && i==sum-1) { ListNode *node=new ListNode(a[i]); r->next=node; r=node; break; } if(i%2) { ListNode *node=new ListNode(a[i-1]); r->next=node; r=node; } else { ListNode *node=new ListNode(a[i+1]); r->next=node; r=node; } } return f->next; } };
相关文章推荐
- LintCode:两两交换链表中的节点
- 两两交换链表中的节点-LintCode
- lintcode——两两交换链表中的节点
- 两两交换链表中的节点
- 两两交换链表中的节点
- 两两交换链表中的节点
- LintCode Remove Nth Node From End of List 删除链表中倒数第n个节点
- 两两交换链表中的节点
- 【LintCode 简单】451. 两两交换链表中的节点
- lintcode ----删除链表中倒数第n个节点
- Swap Nodes in Pairs 链表两两交换节点@LeetCode
- 两两交换链表中的节点
- LintCode 删除链表中倒数第n个节点
- lintcode 451 两两交换链表中的节点
- 451 - 两两交换链表中的节点
- 两两交换链表中的节点-LintCode
- python_lintcode_737. Find Elements in Matrix_451. 两两交换链表中的节点
- (Java) LeetCode 24. Swap Nodes in Pairs —— 两两交换链表中的节点
- LintCode- 链表倒数第n个节点
- LintCode 删除链表中倒数第n个节点