lintcode-451-两两交换链表中的节点
451-两两交换链表中的节点
给一个链表,两两交换其中的节点,然后返回交换后的链表。
样例
给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。
挑战
你的算法只能使用常数的额外空间,并且不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
标签
链表
思路
两两交换结点
code
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    /*
     * @param head: a ListNode
     * @return: a ListNode
     */
    ListNode * swapPairs(ListNode * head) {
        // write your code here
        if (head == NULL || head->next == NULL) {
            return head;
        }
        ListNode * newHead = new ListNode(0);
        newHead->next = head;
        ListNode * temp = head, *p = newHead, *q = temp->next;
        while (temp != NULL && temp->next != NULL) {
            temp->next = q->next;
            q->next = temp;
            p->next = q;
            if (temp->next != NULL && temp->next->next != NULL) {
                p = temp;
                temp = temp->next;
                q = temp->next;
            }
            else {
                break;
            }
        }
        return newHead->next;
    }
};
lintcode-451-两两交换链表中的节点的更多相关文章
- NO.24两两交换链表中的节点
		NO.24两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例:给定 1->2->3-&g ... 
- LeetCode 24. 两两交换链表中的节点(Swap Nodes in Pairs)
		题目描述 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 说明: 你的算法只能 ... 
- Java实现 LeetCode 24 两两交换链表中的节点
		24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3-&g ... 
- leetcode 24. 两两交换链表中的节点 及 25. K 个一组翻转链表
		24. 两两交换链表中的节点 问题描述 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2-> ... 
- LeetCode-024-两两交换链表中的节点
		两两交换链表中的节点 题目描述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例说明请见LeetCode官网. 来源:力 ... 
- 【LeetCode】24.两两交换链表中的节点
		24.两两交换链表中的节点 知识点:链表 题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 示例 示例 1 ... 
- 【Leetcode链表】两两交换链表中的节点(24)
		题目 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表.你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3->4, 你应该返回 2- ... 
- LintCode之两两交换链表中的节点
		题目描述: 我的思路: 由题目描述可知,题目是要求将第一个与第二个节点,第三个与第四节点....进行交换,而进行交换时只用将节点的值进行交换即可.需要注意的是:当链表为null或者当链表只有一个节点时 ... 
- LintCode  两两交换链表中的节点
		给一个链表,两两交换其中的节点,然后返回交换后的链表. 样例 给出 1->2->3->4, 你应该返回的链表是 2->1->4->3. 分析:第一次调试的时候用了P ... 
随机推荐
- Delphi在Android下通过WiFI进行调试
			如果我们需要调试USB程序且Android设备只有一个USB口,那么可以通过WiFi来调试程序,这样USB口就可以用了. 大致步骤如下: 1.在有root权限的Android设备里安装“Wifi AD ... 
- 蓝牙耳机电路和PCB(网上下载用于练习)
			这个是文件 https://pan.baidu.com/s/1smIyd_aNIt-ON8z8AeWn4Q 密码 w6ju 这是导入进去以后的样子,前面步骤我就跳过了 这是原作者的布局 但是我在看原理 ... 
- flink 根据时间消费kafka
			经常遇到这样的场景,13点-14点的时候flink程序发生了故障,或者集群崩溃,导致实时程序挂掉1小时,程序恢复的时候想把程序倒回13点或者更前,重新消费kafka中的数据. 下面的代码就是根据指定时 ... 
- 5.18-笨办法学python-习题15(open等读取文件)
			from sys import argv script,filename=argv #不要忘了script(相当于一个固定变量),filename(可变变量) txt=open(filename) # ... 
- 20155330 2016-2017-2 《Java程序设计》第一周学习总结
			教材学习内容总结 第一章 Java平台概论 学习目标 Java版本迁移简介 认识Java SE.Java EE.Java ME 了解JVM.JRE与JDK 下载与安装JDK 章节主要内容 第二章 从J ... 
- # 20155337 2016-2017-2 《Java程序设计》第十周学习总结
			20155337 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 网络编程 •网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就 ... 
- 1127: [POI2008]KUP
			1127: [POI2008]KUP https://lydsy.com/JudgeOnline/problem.php?id=1127 分析: 如果存在一个点大于等于k,小于等于2k的话,直接输出. ... 
- DSP28335声音降噪(未完成)
			1. 确定使用的模块是Webrtc-NS,采集声音的芯片TLV32AIC23,实际测试发现Webrtc-NS无法使用,所以改成FIR滤波器. 从时域特性上来看,数字滤波器还可以分为有限冲激响应数字滤波 ... 
- win2012r2  关闭中英文悬浮小方框显示
			因为那是微软输入法自带的 2012下关不掉 所以切换成美式键盘就没有了 
- 关于网易云验证码V1.0版本的服务介绍
			服务介绍 易盾验证码是一个用于区分人和机器的通用验证码组件.传统的字符型验证码由于存在破解率高,用户体验不友好等问题,已不适用于现今的互联网环境.易盾验证码抛弃了传统字符型验证码展示-填写字符-比对答 ... 
