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;
    }
};

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQL批量更新操作[转载]

    SQL批量更新操作[转载]

    2021年8月9日
    69
  • leavecriticalsection报错_sequence的用法

    leavecriticalsection报错_sequence的用法线程锁的概念函数EnterCriticalSection和LeaveCriticalSection的用法注:使用结构CRITICAL_SECTION需加入头文件#include“afxmt.h”定义一个全局的锁CRITICAL_SECTION的实例和一个静态全局变量CRITICAL_SECTIONcs;//可以理解为锁定一个资源statici

    2022年9月20日
    2
  • hackbar2.2.9在Firefox中的安装

    hackbar2.2.9在Firefox中的安装转载出处:https://www.ddosi.com/b320/尊重原创,以及知识产权,首先声明这是上面链接中大神的辛苦劳动成果,因为不知道如果联系所以这篇转载可能会有侵权问题,希望查看此链接的爱好者直接点击上面的链接查看,这篇仅是个人学习转载。前言众所周知,Firefox的插件必须经过签名,才能加载到浏览器中.因此,对于hackbar的破解,要么是装2.1.3这个没有激活的老版本,要么是直接安装hackbar的替代品,如Machackbar……其实对于h.

    2022年5月15日
    76
  • 复制集让mongodb的secondary支持读操作,因为存在读写延迟所以是否需要读写分离

    复制集让mongodb的secondary支持读操作,因为存在读写延迟所以是否需要读写分离复制集让mongodb的secondary支持读操作,因为存在读写延迟所以是否需要读写分离

    2022年4月24日
    65
  • Maven相关配置

    Maven相关配置

    2021年7月11日
    95
  • IDEA设置JVM运行参数[通俗易懂]

    IDEA设置JVM运行参数[通俗易懂]前言有时候我们需要在程序运行的时候对程序设置环境变量,恰巧我也遇到了这个问题,所以在此记录一下IDEA是如何设置环境变量的。作用-Dproperty=Value该参数通常用于设置系统级全局变量值,如配置文件路径,保证该属性在程序中任何地方都可访问。当然,也可以通过在程序中使用System.setProperty进行设置。注意:…

    2025年6月15日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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