首页 > 其他分享 >交换相邻节点

交换相邻节点

时间:2024-08-14 09:29:29浏览次数:10  
标签:head ListNode 交换 next current 相邻 null 节点

1

class ListNode {
    int val;
    ListNode next;

    ListNode(int val) {
        this.val = val;
        this.next = null;
    }
}

public class SwapNodes {

    // 方法:交换相邻节点
    public static ListNode swapPairs(ListNode head) {
        // 如果链表为空或只有一个节点,则直接返回
        if (head == null || head.next == null) {
            return head;
        }

        // 创建一个虚拟节点作为新的头节点的前驱
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        ListNode current = dummy;

        // 迭代交换相邻节点
        while (current.next != null && current.next.next != null) {
            // 初始化要交换的两个节点
            ListNode first = current.next;
            ListNode second = current.next.next;

            // 交换节点
            first.next = second.next;
            second.next = first;
            current.next = second;

            // 移动指针到下一个要交换的节点位置
            current = first;
        }

        // 返回新的头节点
        return dummy.next;
    }

    // 辅助方法:打印链表
    public static void printList(ListNode head) {
        ListNode current = head;
        while (current != null) {
            System.out.print(current.val + " ");
            current = current.next;
        }
        System.out.println();
    }

    public static void main(String[] args) {
        // 创建链表 1 -> 2 -> 3 -> 4
        ListNode head = new ListNode(1);
        head.next = new ListNode(2);
        head.next.next = new ListNode(3);
        head.next.next.next = new ListNode(4);

        System.out.println("原始链表:");
        printList(head);

        // 交换相邻节点
        head = swapPairs(head);

        System.out.println("交换相邻节点后的链表:");
        printList(head);
    }
}

 

 

标签:head,ListNode,交换,next,current,相邻,null,节点
From: https://www.cnblogs.com/Jomini/p/18358199

相关文章

  • 金融行业到底该选择什么样的数据安全交换系统?
    数据安全交换系统是数据在企业内部安全流畅流动的基础,对于金融行业来说,由于金融行业属于数据密集型行业,因此,数据的流动较为频繁,数据拥有较高的价值,这就导致数据安全交换系统对于金融行业而言有着更为重要的意义。但金融行业相对于其他行业来说,其担负着国际民生的角色,所以,在数据......
  • 什么是核心交换机?这样回答太到位了
    号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部你们好,我的网工朋友。无论是企业内部通信还是对外服务,稳定高效的数据传输都是成功的关键。在这个背景下,核心交换机作为网络基础设施的中枢神经,扮演着至关重要的角色,相信大家在工作中也经常打交道......
  • java处理流 和节点流(在字节流和字符流中,又分为处理流和节点流)
    Java中的I/O流分为两类:字节流和字符流。字节流主要用于读写二进制数据,而字符流则主要用于读写文本数据。在字节流和字符流中,又分为处理流和节点流。节点流是直接连接到数据源或数据目的地的流,也就是说它们是直接操作文件的流,例如FileInputStream和FileOutputStream。节点流可以直......
  • ICASSP2025重要时间节点
    ICASSP2025重要时间节点征稿启事下载论文征集提交门户将于2024年8月12日(美国太平洋时间)开放。任何人都可以成为不超过九份投稿的作者团队的成员。**这50第IEEE声学、语音和信号处理国际会议(ICASSP)**将于2025年4月6日至11日在印度海得拉巴海得拉巴国际......
  • 在K8S中,K8S外部节点访问Pod有哪些方式?
    在Kubernetes(K8S)中,外部节点访问Pod的方式主要有以下几种:1.hostNetwork原理:通过将Pod配置为使用hostNetwork,Pod中的容器将直接看到并共享宿主机的网络接口。这意味着外部流量可以直接通过宿主机的IP地址和端口访问Pod内的服务。配置示例:apiVersion:v1kind:Podmeta......
  • HCL学习——交换机端口安全技术
    本篇记录学习HCL的笔记。【2023年】H3CNE认证网络工程师完整培训视频教程_上https://www.bilibili.com/video/BV1Dg411i7yM?p=22&spm_id_from=pageDriver&vd_source=ecbebcd4db8fad7f74c518d13e78b165 802.1x技术 如果随便拿台pc插到交换机上岂不是就能接入本公司网络呢,80......
  • SQL进阶技巧:断点缝合问题【如何按照业务规则对相邻行数据进行合并】
    目录0需求描述1数据准备2数据分析3小结 0需求描述如下图所示,按照定义的规则进行数据变换注意:b中的数值只有0和11数据准备withdataas(select2010 a,0bunionallselect2011 a,1bunionallselect2012 a,0bunionallselect2013 a,1bunionall......
  • 修改宠物俱乐部程序,把所有同名的宠物都存储在同一个节点。当用户选择查找宠物时,程序应
    /修改宠物俱乐部程序,把所有同名的宠物都存储在同一个节点。当用户选择查找宠物时,程序应咨询用户该宠物的名字,然后列出该名字的所有宠物(及其种类)/include<stdio.h>include<stdlib.h>include<string.h>typedefstructPet{charname[50];charspecies[50];structPet*......
  • 3.3交换机的三种交换方式
    一、存储转发(Store-and-Forward)存储转发是最常见的交换方式,交换机会复制整个数据帧到缓冲区,然后计算CRC(循环冗余检查,CyclicRedundancyCheck)。工作原理接收数据帧:交换机接收到整个数据帧。错误检测:交换机计算帧校验序列(FCS),检查数据帧是否有错误。转发决定:如果数据帧没有错......
  • 3.2交换机交换的基本原理
    一、 交换机的基本概念A、数据帧1.数据帧的组成部分一个典型的数据帧由多个字段组成,每个字段都有特定的用途。1)帧头(Header)帧头位于数据帧的开头,包含了必要的控制信息,用于指导帧的传输和处理。帧头通常包括以下几个字段:目的地址(DestinationAddress):指向接收数据帧的......