eetcode_c++:链表:Swap Nodes in Pairs(024)
来源:互联网 发布:手机可以禁止安装软件 编辑:程序博客网 时间:2024/06/10 09:12
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.
//每一对节点交换
算法
O(N)
#include <iostream>#include <vector>#include<cmath>#include <algorithm>using namespace std;struct ListNode{ int val; ListNode* next; ListNode(int x):val(x),next(NULL){}};//leetcode-------------------class Solution {public: ListNode* swapPairs(ListNode* head) { ListNode* dummy=new ListNode(-1); dummy->next=head; ListNode *preNode=dummy,*curNode=head; int cnt=1; while(curNode && curNode->next){ preNode->next=curNode->next; curNode->next=preNode->next->next; preNode->next->next=curNode; // go over two nodes preNode=curNode; curNode=curNode->next; } head=dummy->next; delete dummy; // 删除头结点 return head; }};//-------------//---数组数据插入链表----------------ListNode* createList(int a[],int n){ ListNode* head=NULL,*p=NULL; for(int i=0;i<n;i++){ if(head==NULL){ head=p=new ListNode(a[i]); }else{ p->next=new ListNode(a[i]); p=p->next; } } return head;}void printList(ListNode* h){ while(h!=NULL){ printf("%d ",h->val); h=h->next; } printf("\n");}//-------------int main(){ Solution s; int a[]={1,3,5,6,7,10}; ListNode* p1=createList(a,sizeof(a)/sizeof(int)); printList(s.swapPairs(p1)); return 0;}
0 0
- eetcode_c++:链表:Swap Nodes in Pairs(024)
- 024 - Swap Nodes in Pairs
- 024 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
- HDU1937How many ways(记忆化搜索)入门
- csu 1110 RMQ with Shifts 线段树
- 关于 const,以下正确的是
- CentOS6.5的用户管理
- unity中的碰撞检测
- eetcode_c++:链表:Swap Nodes in Pairs(024)
- B. Remainders Game
- Android小知识点积累
- UVA-10815 Andy's First Dictionary
- 树——找到二叉树中的最大二叉搜索树
- 【HIHOCODER】The Cats' Feeding Spots
- Hibernate 简单使用(三)一对一关联映射
- HTTP
- jzoj 1568. 【普及模拟】石子游戏 解题报告