leetcode 24

链表操作的,要注意标记头结点和边界问题。
代码如下:
ListNode *swapPairs(ListNode *head) {
if(head==NULL||head->next==NULL)
return head;
ListNode* p=head;
ListNode* q=head->next;
ListNode* x=head->next->next;
ListNode* t=NULL;
head=q;
while(p!=NULL&&q!=NULL){
q->next=p;
p->next=NULL;
if(t!=NULL)
t->next=q;
t=p;
p=x;
if(x!=NULL)
q=x->next;
if(q!=NULL)
x=q->next;
}
if(p!=NULL)
t->next=p;
return head;
}
更加巧妙的解法,直接对链表中节点的val进行交换,不用操作链表;
代码如下:
/**
* 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) {
int n;
ListNode* node = head;
while (head != NULL && head->next != NULL) {
n = head->val;
head->val = head->next->val;
head->next->val = n;
head = head->next->next;
}
return node;
}
};
leetcode 24的更多相关文章
- [LeetCode] 24 Game 二十四点游戏
You have 4 cards each containing a number from 1 to 9. You need to judge whether they could operated ...
- [LeetCode] 24. Swap Nodes in Pairs 成对交换节点
Given a linked list, swap every two adjacent nodes and return its head. You may not modify the value ...
- Java实现 LeetCode 24 两两交换链表中的节点
24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3-&g ...
- LeetCode 24 Swap Nodes in Pairs (交换相邻节点)
题目链接: https://leetcode.com/problems/swap-nodes-in-pairs/?tab=Description Problem: 交换相邻的两个节点 如上 ...
- Leetcode: 24 Game
You have 4 cards each containing a number from 1 to 9. You need to judge whether they could operated ...
- LeetCode 24. Swap Nodes in Pairs (两两交换链表中的节点)
题目标签:Linked List 题目给了我们一组 linked list,让我们把每对nodes 互换位置. 新键一个dummy node,然后遍历list,每次建立 s1 和 s2 记录两个点,然 ...
- leetcode 24. 两两交换链表中的节点 及 25. K 个一组翻转链表
24. 两两交换链表中的节点 问题描述 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2-> ...
- [leetcode 24] Swap Nodes in k-Group
1 题目: 目前被墙,看不了. 2 思路: 比较简单,注意处理边界点就好 3 代码: public ListNode swapPairs(ListNode head) { int temp; if(h ...
- Java [leetcode 24]Swap Nodes in Pairs
题目描述: Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1-& ...
随机推荐
- bug_ _ 常见的bug1
===== 3 java.lang.reflect.InvocationTargetException 异常解决方法 在做djunit测试的时候,发生下面异常: java.lang.reflec ...
- Zend Guard Run-time support missing问题的解决
Zend Guard不仅可以实现对PHP应用的脚本进行加密保护和对PHP应用的产品进行商业许可证管理,还可以为许多软件生产商.IT服务提供商提供完善的加密和安全的产品发布系统. 虽然现在可以成功加密p ...
- ajax实现的无刷新分页代码实例
一.html代码部分: <table class="table style-5"> <thead id="t_head"> ...
- Table View滑动时报错
学习表视图(Table View)的应用时,自己写了个demo,最后表格出来了,可是滑动时报错了,报错如下: 这是我ViewController.m部分的代码: #import "ViewC ...
- Jenkins参数化构建
背景:每次构建项目时都需要去修改一下配置,然后保存,再去立即构建.这样修改容易修改出错误,影响到执行脚本,且每次都要去修改配置,不容易修改,操作也比较麻烦.所以决定将Jenkins修改为参数化构建.下 ...
- NPOI高效匯出Excel
using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using NPOI. ...
- struts2中action中的通配符
struts中一个正常的最普通不过的action是这样子的 <package name="default1" namespace="/gys" exten ...
- LK光流算法:提高计算精度和增加搜索范围
LK光流算法:提高计算精度和增加搜索范围 关于LK算法的基本理论,见:http://www.cnblogs.com/dzyBK/p/4960630.html 这里主要阐述如何提高LK算法的计算精度和在 ...
- lambda表达式、内置函数、进制和文件操作
lambda表达式 定义函数(普通方式)def f1(): return 123 f2 = lambda : 123 def f3(a1,a2): return a1+a2 定义函数(lambda表达 ...
- POJ 2823【单调队列】
题意: 给出序列,找出每个连续长度为k的子序列的最大值和最小值. 思路: 裸单调队列... 单调队列这东西用的真的非常局限,大概只能用到这种情景中== 简单说一下维护: 添加元素,为了保持单调性,排除 ...