博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两两交换链表中的节点
阅读量:6907 次
发布时间:2019-06-27

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

给一个链表,两两交换其中的节点,然后返回交换后的链表。

样例

给出 1->2->3->4, 你应该返回的链表是 2->1->4->3

/** * 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        //如果链表长度为0或者为1直接返回就行,不需要操作 ,经过这步操作之后,链表的长度大于等于2        if(!head || !head->next) return head;        ListNode *p=new ListNode(0);//首地址        p->next=head;        head=p;        ListNode *q=head->next;        ListNode *k=q->next;        while(k){            //先进行交换            q->next=k->next;            k->next=q;            p->next=k;            //然后进行向前推进            p=q;            if(q->next==NULL){                q=NULL;                k=NULL;            }else{                q=q->next;                k=q->next;            }        }        head=head->next;        return head;    }};

 

转载于:https://www.cnblogs.com/wuwangchuxin0924/p/6622290.html

你可能感兴趣的文章
Cucumber是如何工作的?
查看>>
聊聊TypeScript中类、接口之间相互继承与实现的那些事儿
查看>>
GJLightBlueTooth——一个轻量级的iOS蓝牙开发库
查看>>
DOM元素及操作
查看>>
阿里云文件存储(NAS)助力业务系统承载双十一尖峰流量
查看>>
java中的volatile关键字
查看>>
信息安全意识
查看>>
docker常用命令总结
查看>>
从零开始实现一个简易的Java MVC框架(二)--实现Bean容器
查看>>
区块链自媒体举步维艰,韭菜财经们能否为其续命?
查看>>
手游交易平台四大难言之隐下,交易猫能否蜕变为“大老虎”
查看>>
QRC20 Token 指南
查看>>
(Ⅱ)NexT主题的优化定制修改指南
查看>>
系列:iOS开发-UITableView
查看>>
深入理解 JVM 之 垃圾回收机制
查看>>
Docker 入门操作
查看>>
onmouseenter、onmouseleave 和 onmouseover、onmouseout
查看>>
源码阅读:Masonry(六)—— MASViewConstraint
查看>>
Red Hat Enterprise Linux(RHEL)中yum的repo文件详解
查看>>
AI考拉技术分享会--Node.js并发模型
查看>>