[LeetCode OJ]Swap Nodes in Pairs
来源:互联网 发布:mysql 修改列默认值 编辑:程序博客网 时间:2024/04/27 18:05
【问题描述】
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.
问题来源:swap-nodes-in-pairs【解题分析】
题意:给定一个链表,调换每两个相邻节点,并返回其头部。算法必须使用唯一不变的空间,不能修改列表中的值,只有节点本身是可以改变的。
我们也以1->2->3->4这个作为例子,交换前两个。
1. 没有节点,返回NULL作为结束。
2. 只有一个节点,不用进行交换,直接返回该节点即可。
我们也以1->2->3->4这个作为例子,交换前两个。
ListNode* result = head->next;// become: 2->3->4head->next = result->next;// become:1->3->4result->next = head;// become:2->1->3->4对后面的元素也进行swap,只需要用递归替换掉result->next。
ListNode* result = head->next;head->next = swapPairs(result->next);result->next = head;递归终止的条件:
1. 没有节点,返回NULL作为结束。
2. 只有一个节点,不用进行交换,直接返回该节点即可。
【源代码】
/** * 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) { return head; } ListNode* res = head->next; head->next = swapPairs(res->next); res->next = head; return res; }};
阅读全文
0 0
- LeetCode OJ:Swap Nodes in Pairs
- LeetCode OJ - Swap Nodes in Pairs
- [LeetCode OJ]Swap Nodes in Pairs
- LeetCode OJ Swap Nodes in Pairs
- 【LeetCode OJ 024】Swap Nodes in Pairs
- LeetCode OJ-24-Swap Nodes in Pairs
- [LeetCode OJ]Swap Nodes in Pairs
- LeetCode:Swap Nodes in Pairs
- LeetCode: Swap Nodes in Pairs
- [Leetcode] Swap Nodes in Pairs
- LeetCode : Swap Nodes in Pairs
- [LeetCode] Swap Nodes in Pairs
- Leetcode: Swap nodes in pairs
- [LeetCode]Swap Nodes in Pairs
- [LeetCode]Swap Nodes in Pairs
- LeetCode-Swap Nodes in Pairs
- LeetCode - Swap Nodes in Pairs
- LeetCode | Swap Nodes in Pairs
- 阿里云课程:云计算—分布式文件存储系统及实现
- CircleImageView的实现与使用
- Intellij IDEA必要条件
- [JZOJ5134]三元组/[SPOJ PCOPTRIP]Counting Pairwise Coprime Triples
- mysql transaction
- [LeetCode OJ]Swap Nodes in Pairs
- Python量化分析之K线模式识别
- java泛型中<?>和<T>有什么区别?
- 活用VIM:全局搜索并跳转
- hihocoder1122 二分图二•二分图最大匹配之匈牙利算法
- 学习PHP常犯的十个错误
- Mysql远程连接配置
- Redis缓存中使用Kryo序列化工具并且修改内容同时更新缓存
- dynamic_cast和static_cast