合并两个有序的单链表,合并之后的链表依然有序

news2024/11/26 8:52:11

 定义节点 

class ListNode {
  var next: ListNode = _
  var x: Int = _

  def this(x: Int) = {
    this
    this.x = x
  }

  override def toString: String = s"x=>$x"
}

 定义方法 

class LinkedList {
  var head = new ListNode(0)

  def getHead(): ListNode = this.head

  def add(listNode: ListNode): Unit = {
    var temp = this.head
    while (temp.next != null) {
      temp = temp.next
    }
    temp.next = listNode
  }

  def list(listNode: ListNode): Unit = {
    var temp = head.next
    while (temp.next != null) {
      println(s"$temp")
      temp = temp.next
    }
  }


  def compair(head1: ListNode, head2: ListNode): ListNode = {
    var node1 = head1.next
    var node2 = head2.next
    //定义输出节点
    val head = new ListNode()
    var current = new ListNode()
    head.next = current //将head的next指向current
    while (node1 != null && node2 != null) {
      if (node1.x < node2.x) {
        current.x = node1.x
        current.next = new ListNode()
        current = current.next
        node1 = node1.next
      } else {
        current.x = node2.x
        current.next = new ListNode()
        current = current.next
        node2 = node2.next
      }
    }
    while (node1 != null) {
      current.x = node1.x
      current.next = new ListNode()
      current = current.next
      node1 = node1.next
    }
    while (node2 != null) {
      current.x = node2.x
      current.next = new ListNode()
      current = current.next
      node2 = node2.next
    }
    head
  }

}

主函数

package Algotithm

object LinkedListDemo {
  def main(args: Array[String]): Unit = {
    val list1 = new LinkedList
    for (i <- 1 to 5 by 2) {
      val node = new ListNode(i)
      list1.add(node)
    }
    println(s"list1=========")
    list1.list(list1.getHead())

    val list2 = new LinkedList
    for (i <- 1 to 10 by 3) {
      val node = new ListNode(i)
      list2.add(node)
    }
    println(s"list2=========")
    list2.list(list2.getHead())

    println(s"=====================")
    val list3 = new LinkedList
    val node = list3.compair(list1.getHead(), list2.getHead())
    list3.head = node // 将 node 赋值给 list3 的头节点
    list3.list(node)
  }

}


结果

总结

 1、定义方法时,需要重新new节点,将值付给该节点

 2、调用方法得到节点之后,需要将该节点赋值给 list 的头节点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/949101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

省级专精特新!祝贺旭帆科技荣获安徽省“专精特新”中小企业!

2023年8月&#xff0c;安徽旭帆信息科技有限公司&#xff08;以下简称“旭帆科技”&#xff09;成功荣获2023年度“安徽省专精特新中小企业”荣誉称号&#xff0c;成为具备专业化、精细化、特色化、新颖化的“专精特新”企业。 随着《“十四五”促进中小企业发展规划》的深入实…

mysql 查看 、设置缓冲池 buffer_pool

Mysql 存储引擎 MyIsam 和 Innodb 引擎 myIsam 存储引擎&#xff1a; 只缓存索引&#xff0c;不缓存数据&#xff0c;对应的键缓存参数为 key_buffer_size show variables like ‘key_buffer_size’; set global key_buffer_sizexxxx; 或者 my.ini my.cnf [server] key_buffer…

二三维电子沙盘数字沙盘虚拟现实开发教程第14课

二三维电子沙盘数字沙盘开发教程第14课 很久没有写了&#xff0c;主要前段时间在针对怎么显示高精度的 倾斜数据而努力&#xff0c;现在终于实现了效果不错。以前的版本显示倾斜数据控制不太好。 对了。目前系统暂只支持smart3d生成的kml格式的数据&#xff0c;由专有的录入程…

教你如何做正交表

正交表是一种用于多因素实验设计的表格。它可以帮助我们在尽可能少的试验次数下确定各个因素对结果的影响&#xff0c;从而提高实验效率。接下来将从以下几个方面介绍正交表的相关内容。 一、正交表基本概念 正交表是一种特制的表格&#xff0c;用于多因素实验设计研究。根据正…

马蹄集oj赛(第十次)

目录 2的N次幂 升级版斐波那契数列 个数统计 个数统计2 大斐列 AB problem ​编辑 A-B problem 快速幂 进行一个幂的运算 整数大小比较 2的N次幂 难度&#xff1a;黄金 0时间限制&#xff1a;1秒 巴占用内存&#xff1a;128M 任意给定一个正整数N(N≤100)&#xff0…

Qt6 for Windows 环境搭建(Visual Studio)

作者&#xff1a; 一去、二三里 个人微信号&#xff1a; iwaleon 微信公众号&#xff1a; 高效程序员 在 Windows 中&#xff0c;如果想要开发 Qt 应用程序&#xff0c;可以选择多种方式&#xff1a; Qt Creator MinGW 编译器Qt Creator MSVC 编译器Visual Studio&#xff0…

线上祭奠软件:虚拟纪念与情感表达的新方式

线上祭奠软件作为一种新兴的技术应用&#xff0c;正在改变传统祭奠方式&#xff0c;为人们提供了跨越时空的虚拟纪念和情感表达方式。本文将深入探讨线上祭奠软件的意义、功能与挑战&#xff0c;并思考其对社会和个人的影响。 一、线上祭奠软件的意义&#xff1a; 1.跨…

MyBatis —— 初窥门径

前言 MyBatis作为一款优秀的持久层框架&#xff0c;在Java后端开发中无疑是比较重要一环&#xff0c;在常见的spring整合的SSM框架以及之后的SpringBoot中都可以看到MyBatis大显神威的模样。在这篇文章中&#xff0c;荔枝将会从Maven开启创建一个MyBatis项目并整理MyBatis相应的…

服务器放在香港好用吗?

​  相较于国内服务器&#xff0c;将网站托管在香港服务器上最直观的好处是备案层面上的。香港服务器上的网站无需备案&#xff0c;因此更无备案时限&#xff0c;购买之后即可使用。 带宽优势 香港服务器的带宽一般分为香港本地带宽和国际带宽、直连中国骨干网 CN2三种。香港…

函数注解学习

def hanshuzhujie(a:str,b: str m)->str:print(hanshuzhujie.__annotations__)return ab hanshuzhujie(qqq)运营结果 E:\Python\Python38\python.exe D:/pythonprojects/python-auto-test/test/hanshuzhujie.py {a: <class str>, b: <class str>, return: <…

生态项目|Typus如何用Sui特性制作动态NFT为DeFi赋能

对于许多人来说&#xff0c;可能因其涉及的期权、认购和价差在内的DeFi而显得晦涩难懂&#xff0c;但Typus Finance找到了一种通过动态NFT使体验更加丰富的方式。Typus NFT系列的Tails为用户带来一个外观逐渐演变并在平台上提升活动水平时获得新特权的角色。 Typus表示&#x…

AI时代,GPGPU和NPU哪个才是王者?

AI飞速发展&#xff0c;全球算力井喷&#xff0c;我国进入AI计算高速发展阶段&#xff0c;GPU的自主化已经摆上案头。近日&#xff0c;华夏银行首席信息官吴永飞发表研究&#xff0c;指出GPGPU是比NPU更合适的路线&#xff0c;并以海光DCU为基础进行了GPU算力池化的研究。 GPG…

无涯教程-Android - List View函数

Android ListView 是垂直滚动列表中显示的视图&#xff0c;使用 Adapter 从列表(如数组或数据库)中获取内容的列表项会自动插入列表中。 适配器(Adapter)实际上是UI组件和将数据填充到UI组件中的数据源之间的桥梁&#xff0c;适配器保存数据并将数据发送到适配器视图&#xff0…

说说我最近筛简历和面试的感受。。

大家好&#xff0c;我是鱼皮。 都说现在行情不好、找工作难&#xff0c;但招人又谈何容易&#xff1f;&#xff01; 最近我们公司在招开发&#xff0c;实习社招都有。我收到的简历很多&#xff0c;但认真投递的、符合要求的却寥寥无几&#xff0c;而且都是我自己看简历、选人…

【ES6】Proxy的高级用法,实现一个生成各种 DOM 节点的通用函数dom

下面的例子则是利用get拦截&#xff0c;实现一个生成各种 DOM 节点的通用函数dom。 <body> </body><script>const dom new Proxy({}, {get(target, property) {return function(attrs {}, ...children) {const el document.createElement(property);for …

路由转发(详细理解+实例精讲)

系列文章目录 华为数通学习&#xff08;5&#xff09; 目录 华为数通学习&#xff08;5&#xff09; 前言 一&#xff0c;最长匹配原则 实例1&#xff1a; 实例2&#xff1a; 二&#xff0c;路由转发流程&#xff1a; 三&#xff0c;IP路由表小结&#xff1a; 总结 前…

公司新招了一个拿14K的测试员,而我工作3年才8K,凭什么?

最近我的好朋友给我分享了一个他公司发生的事&#xff0c;大概的内容呢就是&#xff1a;公司一位工作3年的测试员的工资还没有一个刚来的新人高&#xff0c;对此怨气不小&#xff0c;她来公司辛辛苦苦三年&#xff0c;三年内迟到次数都不超过5次&#xff0c;每天都是按时上下班…

WebGPT VS WebGPU

推荐&#xff1a;使用 NSDT编辑器 快速搭建3D应用场景 随着WebGPU的引入&#xff0c;Web开发发生了有趣的转变&#xff0c;WebGPU是一种新的API&#xff0c;允许Web应用程序直接访问设备的图形处理单元&#xff08;GPU&#xff09;。这种发展意义重大&#xff0c;因为 GPU 擅长…

如何买期权看多:期权交易技巧指南,一定要看!

首先我们要清楚在50ETF期权中有两个角色&#xff0c;分别是买方和卖方&#xff0c;两者互为对手方&#xff0c;买方也就是散户&#xff0c;卖方可以理解为机构&#xff0c;认购是看多&#xff0c;认沽是做空。下文介绍如何买期权看多&#xff1a;期权交易技巧指南&#xff0c;一…

理解 Databend Cluster key 原理及使用

Databend Cluster Key 是指 Databend 可以按声明的 key 排序存储&#xff0c;主要用于用户对时间响应比较高&#xff0c;同时愿意为这个 cluster key 进行额排序操作的用户。 Databend 只支持一个 Cluster key&#xff0c;Cluster key中可以包含多列及表达式。 基本语法 -- 语…