Swap Nodes in Pairs leetcode
2016-01-11 22:20
465 查看
Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
Subscribe to see which companies asked this question
未优化的代码,用3个临时指针
惊人的解法,用双重指针,开阔思路,本以为自己可以随心所欲使用双指针,看来还是差得远
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.
Subscribe to see which companies asked this question
未优化的代码,用3个临时指针
ListNode* swapPairs(ListNode* head) { if (head == nullptr || head->next == nullptr) return head; ListNode *pre = head; ListNode *cur = pre->next; ListNode *net = cur->next; head = cur; while (true) { cur->next = pre; if (net == nullptr || net->next == nullptr) { pre->next = net; break; } pre->next = net->next; pre = net; cur = pre->next; net = cur->next; } return head; }
惊人的解法,用双重指针,开阔思路,本以为自己可以随心所欲使用双指针,看来还是差得远
ListNode *swapPairs(ListNode *head) { ListNode **p = &head; while (*p && (*p)->next) { ListNode *t = (*p)->next; (*p)->next = t->next; t->next = *p; *p = t; p = &(*p)->next->next; } return head; }
相关文章推荐
- Sublime Text3配置Node.js开发环境
- Node.js_同步/异步回调
- nodejs Tips5
- Parse终极总结
- Node.js的Hashish模块
- nodejs Tips4
- LeetCode-- Swap Nodes in Pairs
- nodejs Tips3
- 安装nodejs搭建ghost个人博客
- node使用本地存储的方式可以使用多个data本地域
- nodejs 读取图片返回给浏览器
- nodejs 小爬虫
- nodejs创建服务器
- node中require应用模块路径解析
- Hadoop 重新格式化namenode
- Mac OSX下卸载Nodejs
- 20160110 node.js开发环境搭建
- [leetcode] 116. Populating Next Right Pointers in Each Node 解题报告
- windows下基于sublime text3的nodejs环境搭建
- 更新node后,pomelo异常 not a package /usr/local/bin/pomelo