Swap Nodes in Pairs

原创 2015年07月09日 10:02:11

写法一:

/**
 * 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) {
       ListNode* h1 = head, *parent = NULL, *h3 = NULL;
        while(h1!=NULL && h1->next!=NULL)
        {
            h3 = h1->next->next;
            
            //swap h1 & h1->next
            if(parent == NULL)
                head = h1->next;
            else
                parent->next = h1->next;
            
            h1->next->next = h1;
            h1->next = h3;

            parent = h1;
            h1 = h3;
        }
        return head;
    }
};

写法二:

/**
 * 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(NULL == head || NULL == head->next)
            return head;
        ListNode* h1 = head;
        head = head->next;
        ListNode* h3 = head->next;
        head->next = h1;
        h1->next = h3;
         
        ListNode* parent = h1;
        h1 = h3;
       
        while(h1!=NULL)
        {
            if(h1->next == NULL)
                break;
            h3 = h1->next->next;
            
            //swap h1 & h2
            parent->next = h1->next;
            h1->next->next = h1;
            h1->next = h3;
            
            
            parent = h1;
            h1 = h3;
        }
        return head;
    }
};

效率:


每日算法之二十二:Swap Nodes in Pairs

Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->...
  • yapian8
  • yapian8
  • 2014年05月30日 20:11
  • 777

算法设计与分析(17)-- Swap Nodes in Pairs(难度:Medium)

Swap Nodes in Pairs
  • alexlau8
  • alexlau8
  • 2017年06月22日 11:49
  • 138

LeetCode | Swap Nodes in Pairs(将链表中的元素两两交换)

Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2-...
  • a45872055555
  • a45872055555
  • 2014年07月08日 21:45
  • 534

R语言中用pairs作图时标出各个分图中的所要显示的点

对R语言源码中的graphics包中的pairs.R文件修改如下: pairs.default function (x, labels, panel = points, ...,     ...
  • paomojing
  • paomojing
  • 2014年09月30日 13:34
  • 3771

leetCode 24. Swap Nodes in Pairs (双数交换节点) 解题思路和方法

Swap Nodes in Pairs  Given a linked list, swap every two adjacent nodes and return its head. F...
  • xygy8860
  • xygy8860
  • 2015年07月07日 13:09
  • 656

【Leetcode】Swap Nodes in Pairs in JAVA 难得的一次写对不带改的。。附赠测试程序like always

Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2-...
  • qbt4juik
  • qbt4juik
  • 2014年11月23日 23:22
  • 586

【Linux】Linux中Swap与Memory内存简单介绍

Linux的很多设计与考虑也是非常独特,对性能也产生了巨大的提升。这篇文章介绍一下Linux中swap与memory。...
  • s120922718
  • s120922718
  • 2013年09月26日 17:02
  • 30427

STL vector中的swap方法(33)

原文地址: public member function std::vector::swap void swap (vector& x); Swap content...
  • guang_jing
  • guang_jing
  • 2014年08月19日 19:55
  • 1019

基因数据处理53之cs-bwamem集群版运行paird-end(1千万条100bp的reads)

art: art_illumina -ss HS20 -i GRCH38BWAindex/GRCH38chr1L3556522.fna -p -l 100 -m 200 -s 10 -c 10...
  • bob601450868
  • bob601450868
  • 2017年12月18日 01:13
  • 64

linux的虚拟内存swap分区的使用和配置

Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被...
  • hj7jay
  • hj7jay
  • 2016年07月04日 17:51
  • 2363
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swap Nodes in Pairs
举报原因:
原因补充:

(最多只允许输入30个字)