博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LintCode] Swap Nodes in Pairs 成对交换节点
阅读量:5329 次
发布时间:2019-06-14

本文共 1120 字,大约阅读时间需要 3 分钟。

 

Given a linked list, swap every two adjacent nodes and return its head.

 
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.

 

LeetCode上的原题,请参见我之前的博客。

 

解法一:

class Solution {public:    /**     * @param head a ListNode     * @return a ListNode     */    ListNode* swapPairs(ListNode* head) {        ListNode *dummy = new ListNode(-1), *pre = dummy;        dummy->next = head;        while (pre->next && pre->next->next) {            ListNode *t = pre->next;            pre->next = t->next;            t->next = t->next->next;            pre->next->next = t;            pre = t;        }        return dummy->next;    }};

 

解法二:

class Solution {public:    /**     * @param head a ListNode     * @return a ListNode     */    ListNode* swapPairs(ListNode* head) {        if (!head || !head->next) return head;        ListNode *t = head->next;        head->next = swapPairs(head->next->next);        t->next = head;        return t;    }};

 

转载于:https://www.cnblogs.com/grandyang/p/5648424.html

你可能感兴趣的文章
【bzoj5016】[Snoi2017]一个简单的询问 莫队算法
查看>>
[dpdk] 熟悉SDK与初步使用 (二)(skeleton源码分析)
查看>>
Ajax : load()
查看>>
分布式版本控制系统
查看>>
HTML5学习笔记简明版(1):HTML5介绍与语法
查看>>
使用IntelliJ IDEA 配置Maven
查看>>
java 设计模式
查看>>
计时器setInterval()、setTimeout()
查看>>
讲解浏览器 三次握手四次挥手。
查看>>
实验室专利撰写相关
查看>>
hdu 4928 Series 2 (优化+模拟)
查看>>
weblogic宕机crash问题解决分享
查看>>
设计一函数,求整数区间[a,b]和[c,d]的交集
查看>>
字符编码
查看>>
膜拜大神
查看>>
mac使用php-version切换PHP版本
查看>>
SQL_Server_2008完全学习之第五章操作架构、索引和视图
查看>>
Django中的session和cookie及分页设置
查看>>
Entity Framework 基础
查看>>
Django-组件拾遗
查看>>