博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode-Swap Nodes in Pairs
阅读量:5037 次
发布时间:2019-06-12

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

题目:

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.

 

代码:

1 class Solution{ 2 public: 3       void swap(ListNode *node1,ListNode *node2){ 4             node1->next=node2->next; 5             node2->next=node1; 6       } 7        8       ListNode* swapPairs(ListNode *head){ 9           if(head==NULL || head->next==NULL)  return head;10           ListNode *ppre=NULL,*pre=NULL;11           ListNode *tmp=NULL;12           ListNode *p=head;13           14           while(p){15                pre=p;16                p=p->next;17                if(p->next){18                       tmp=p->next;19                }20                21                if(pre==head) head=p;22                if(ppre) ppre->next=p;23                    24                    ppre=pre;25                    p=tmp;26           }27           return head; 28       }29 };

 

转载于:https://www.cnblogs.com/sixue/p/4011605.html

你可能感兴趣的文章
转发 FMDB多线程下"is currently in use" 或者 "database is locked" 问题
查看>>
<摘录>linux signal 列表
查看>>
maven项目相关依赖包导入
查看>>
11.字典和列表生成式
查看>>
犀牛中图片显示不了
查看>>
PAT (Basic Level) Practice 1001 害死人不偿命的(3n+1)猜想
查看>>
[UIDevice currentDevice].model
查看>>
NAVICAT 拒绝链接的问题
查看>>
【oracle】dmp导数据库
查看>>
微软 SqlHelper代码、功能、用法介绍:高效的组件
查看>>
丰子恺-《豁然开朗》
查看>>
JavaScript 对象
查看>>
原生js轮播图(面向对象)
查看>>
数据分析软件及spss简单操作
查看>>
自定义通信协议
查看>>
Unity3d--Space Shooter(官方教程)--学习感想(3)
查看>>
java中Collections.sort()方法实现集合排序
查看>>
nodejs笔记之事件循环
查看>>
JVM之垃圾收集器
查看>>
Windows下R画图举例
查看>>