leetcode刷题,总结,记录,备忘24

原创 2015年07月07日 20:38:13

leetcode24

Swap Nodes in Pairs

 

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中,代表上一个,然后在后面的遍历中,将新一对节点的第二个节点接在前一个节点上,然后继续相同操作,具体细节请看代码。
/**
 * 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 * temp = head, * t, *p = NULL;
        head = head->next;
        while (temp && temp->next)
        {
            if (p)
            {
                p->next = temp->next;
            }
            t = temp->next->next;
            temp->next->next = temp;
            temp->next = t;
            p = temp;
            temp = t;
        }
        if (temp)
        p->next = temp;
        
        return head;
    }
};

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

leetcode刷题,总结,记录,备忘 226

leetcode226题。invert Binary Tree 倒置二叉树。想不到这题还有个梗,挺有意思的。我一开始自作聪明,想用一个栈一个队列来做,用中序遍历,把节点push进栈中,把节点的指pu...

leetcode刷题,总结,记录,备忘 39

Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C wher...

leetcode刷题,总结,记录,备忘 312

leetcode312Burst Balloons Given n balloons, indexed from 0 to n-1. Each balloon is painted with a...

leetcode刷题,总结,记录,备忘 223

leetcode223 Find the total area covered by two rectilinear rectangles in a 2D plane. Each re...

iO7以上CIFilter生成二维码(备忘) 此博文包含图片 (2015-04-24 14:48:25)转载

【iOS开发】iO7以上CIFilter生成二维码(备忘) 此博文包含图片 (2015-04-24 14:48:25)转载▼ 标签: cifilter xcode ios开发 二维码 分类...

leetcode 刷题记录 截止到328题

  • 2016年07月24日 20:55
  • 309KB
  • 下载

LeetCode经典题目备忘I

1、有序单链表转平衡BST 时间复杂度O(n) BinaryTree* sortedListToBST(ListNode *& list, int start, int end) { i...

总结&备忘:history记录的时间

最近工作中遇到一些疑似黑客入侵的案例: 客户在阿里云上购买了ECS云服务器作为应用服务器,应用运行中收到了阿里云来的异地IP登录警告短信,提示有可能登录密码已被黑客攻破 于是找到我们服务商帮忙分析处理...

密码备忘记录语句

  • 2014年08月24日 12:36
  • 1.09MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode刷题,总结,记录,备忘24
举报原因:
原因补充:

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