Swap Nodes in Pairs
来源:互联网 发布:手机处方软件 编辑:程序博客网 时间:2024/05/18 02:44
Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given 1->2->3->4
, you should return the list as 2->1->4->3
.
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
思路:记录两个工作指针 p和q;
记录原来链表的当前位置cur;
记录新链表的尾指针curlist;
一对一对进行交换即可!
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* swapPairs(ListNode* head) { if(head == NULL) return NULL; if(head->next == NULL) return head; ListNode * q = head; ListNode * p = q->next; ListNode * cur = head->next->next;//旧节点未加入初始节点 ListNode * curlist = head;//新链表的尾节点 /*链表头交换*/ q ->next = p->next; p->next = q; head = p;//当前链表的头节点 curlist = q;//当前链表的尾节点 /*链表 恢复*/ if(cur == NULL ) return head; if(cur->next == NULL) { curlist->next = cur; return head; } while(cur != NULL && cur->next != NULL) { q = cur;//原来链表的位置 p = cur->next; cur = cur->next->next; q ->next = p->next; p->next = q; curlist->next = p; curlist = q; if(cur == NULL) return head; if(cur->next == NULL) { curlist->next = cur; return head; } } }};
0 0
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes In Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Git的使用(一)——Git的安装和配置
- java重载疑惑
- 最小二乘的理论依据
- EditText输入监听
- boost 线程、互斥体、条件变量
- Swap Nodes in Pairs
- 整合 ucenter 注册自动激活
- word文档页眉页脚页码的修改问题
- 问答的搜索展示
- 打断点一直跳到内存中
- Android之自定义 ArrayAdapter适配器
- IIs 网站应用程序与虚拟目录的区别及高级应用说明(文件分布式存储方案)
- android eclipse ndk开发环境配置
- 怎样解决电脑右下角弹出的广告