Swap Nodes in Pairs
来源:互联网 发布:崔雪莉在sm的地位 知乎 编辑:程序博客网 时间:2024/05/16 09:07
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
思路:题目不难,假设交换p与q(p在前)需要知道p前面的指针,因此需要三个指针,注意交换头部,以及链表长度为奇数的情况。代码如下:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* swapPairs(ListNode* head) { if(head == NULL || head->next == NULL)//空或者长度为1 return head; ListNode *p, *q, *pre; pre = p = head; q = p->next; while(q){ if(p == head){//交换头 p->next = q->next; q->next = p; head = q; } else{ pre->next = q; p->next = q->next; q->next = p; } //移动 if(p->next){//没有到结尾 pre = p; p = p->next; q = p->next; } else break; } return head; }};
0 0
- 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
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- iOS 状态栏(UIStatusBar)的相关设置
- java实现map和object互转的三种方法
- python实现断点续传下载文件
- NGUI中Panel渲染顺序记录
- 了解FTP
- Swap Nodes in Pairs
- 如何使用贝瑟尔曲线切的圆角 Button
- nginx编译选项的选择----nginx的学习之路
- 插入排序
- PhantomJS简介
- Error Handling
- 【翻译自mos文章】怎么检查Oracle Advanced Security Option 是否被安装上?
- QQ侧滑效果实现
- 第二章 创建和销毁对象(上)