leetcode 题解 || Swap Nodes in Pairs 问题[通俗易懂]

leetcode 题解 || Swap Nodes in Pairs 问题

大家好,又见面了,我是全栈君。

problem:

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.

在单链表中。每两个结点交换一下位置。单个的不交换

thinking:

leetcode 题解 || Swap Nodes in Pairs 问题[通俗易懂]

(1)这道题在不新建结点的情况下。指向关系复杂。慢慢分析

(2)head是头指针,指向第一个有效结点!

code:

/**
 * 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 *index = head;
        ListNode *pre = NULL;
        ListNode *tmp = NULL;
        ListNode *modify = head;;
        int i=0;
        if(head==NULL||head->next==NULL)
            return head;
        while((index!=NULL)&&(index->next!=NULL))
        {
            i++;
            pre=index;
            if(i==1)
            {
                head=pre->next; 
                index = index->next;
                tmp = index->next;
                pre->next = tmp;
                index->next = pre;
                index=tmp;
                modify=pre;
            }
            else
            {
                index = index->next;
                tmp = index->next;
                modify->next=pre->next;
                pre->next = tmp;
                index->next = pre;
                index=tmp;
                modify=pre;
            
            }
           
                
        }
        return head;
    }
};

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115548.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • matlab中find函数用法[通俗易懂]

    matlab中find函数用法[通俗易懂]1.返回素有非零元素的位置例如:注:竖着数!!2.条件:find(A==1)例如:返回的仍然是位置!3.返回前N个非零元素的位置,find(A,X)例如:4.返回最后一个非零值的位置find(A,1,‘last’)例如:5.返回最后一个非零值的行列位置或者A中非零元素位置例如:6.[a,b,v]=find(A),找出A中非零元素所在的行和列,分别存储在a和b中,…

  • Java旅游管理系统

    Java旅游管理系统基于Java的SSM旅游平台基于Java的SSM旅游平台功能介绍系统部分快照基于Java的SSM旅游平台功能介绍(1)用户注册,登陆,验证,退出等基本功能;(2)景点介绍,天气预报,门票预订,酒店预订;(3)旅游攻略,旅游咨询,驴友风采;(4)景点地图;(5)驴友社区;(8)个人旅途分享;系统部分快照后台管理界面图片省略…

  • 串口通信-MSComm控件使用详解

    串口通信-MSComm控件使用详解MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 MicrosoftCommunicationsControl(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通…

    2022年10月30日
  • html网页生成工具

    html网页生成工具1.初始化页面2.点击[通用字段]中的控件,控件会自动添加到中间的蓝色框3.选中中间控件,属性可以在右侧进行更改,例如宽度,默认值等转载于:https://juejin.im/post/5ca2c92d6fb9a05e620b7d32…

  • 华硕笔记本 x550c 光驱位换固态硬盘

    华硕笔记本 x550c 光驱位换固态硬盘这两天给华硕笔记本(型号x550c)加装了个8G的内存条,并且给光驱位改装成了480G固态硬盘。内存条和固态硬盘都是在闲鱼上购买。加内存条内存条买的是海力士颗粒的8G1600Mhz,

  • Java8 Lambda表达式详解手册及实例「建议收藏」

    Java8 Lambda表达式详解手册及实例「建议收藏」先贩卖一下焦虑,Java8发于2014年3月18日,距离现在已经快6年了,如果你对Java8的新特性还没有应用,甚至还一无所知,那你真得关注公众号“程序新视界”,好好系列的学习一下Java8的新特性。Lambda表达式已经在新框架中普通使用了,如果你对Lambda还一无所知,真得认真学习一下本篇文章了。现在进入正题Java8的Lambda,首先看一下发音([ˈlæmdə])表达式。注意该词的发…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号