Scala实现单链表反转(leetCode 206)

Leetcode 206:反转链表(最详细解决方案!!!) 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1-&gt 阅读详情
https://leetcode-cn.com/problems/reverse-linked-list/
object Solution {
    /**
    * 非递归方式
    */
    def reverseList(head: ListNode): ListNode = {
        if(head == null || head.next == null){
            head
        }else{
            var prev = head
            var cur = prev.next
            head.next = null
            while(cur != null){
               val temp = cur.next
               cur.next = prev
               prev = cur
               cur = temp  
            }
           prev 
        }
    }

    /**
    * 递归实现,相对循环更加难理解
    */
    def reverseList(head:ListNode):ListNode={
        if(head == null || head.next == null){
            head
        }else{
            val res = reverseList(head.next)
            head.next.next = head
            head.next = null //特别注意:此处循环不需要
            res
        }
    }
}
Scala实现单链表的反转 class ListNode(value:Int) { val node_v = value // 设置每个节点存储的值 var next:ListNode = null // 设置每个节点的指针 } def reverse(l1:ListNode):ListNode = { // 参数l1:... 阅读详情

相关推荐

【链表系列01】反转链表

一般将单向链表的开始节点叫作 头节点(head),将最后一个节点叫作 尾节点(tail)。其中,head 记录了单向链表的基地址,通过它可以遍历得到整条链表;对于 tail ,因为它已经是最后一个节点了,所以它的 next 指针指向一个空地址 NULL。

手指飞舞的专栏 751

scala反转链表 leetcode 206 Reverse Linked List

class ListNode(value:Int) { val v=value; var next:ListNode=null }def reverse(l1: ListNode): ListNode = { var l2=l1; var pre:ListNode=null while (l2!=null){ val tmp=l2.next l2.next=pr

onwingsofsong的博客 914

Tushare Day2——了解stock_basic数据并根据行业和地区进行统计

了解stock_basic数据 1  stock_basic基础信息2  导入包和stock_basic数据、查看基本信息3  根据行业列进行统计3.1  1.先把不同行业列举出来,看一下一共有多少种行业3.2  2.统计每个行业分别有多少家公司3.3  3.把行业从array的二维数组形式变成list形式3.4  4.把行业从list形式转换成文本形式3.5&nbsp

绒绒的Routine 2799

单链表反转的两种实现方式

面试必问之一 /** * Description:遍历、递归实现单链表反转<br/> * Copyright (c) , 2019, LafreeZhao <br/> * This program is protected by copyright laws. <br/> * Date:2019年03月02日 * * @author 赵炳泉

赵炳泉的博客 1582

超螺旋滑模控制(STA)

超螺旋滑模控制又称超扭滑模控制,可以说是二阶系统中最好用的滑模控制方法。

Lyajpunov的博客 1万+

无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

qq_63539957的博客 2万+

图解反转单向链表

我总觉的反转链表的过程不是那么好理解,花了点时间画图来帮助理解

yinhuanxu 8286

UE5摄像机抖动全攻略:从Perlin噪点到Sequence实战(附参数调优技巧)

本文深入解析UE5摄像机抖动技术,从Perlin噪点算法到CameraShakeBase蓝图应用,再到Sequence高级控制,提供全面的参数调优技巧。涵盖战斗、爆炸等场景的预设参数,帮助开发者实现专业级抖动效果,提升游戏沉浸感。

weixin_30300225的博客 98

单链表反转

单链表反转是链表的一种基本操作。网上看了一些文章,介绍的还是都很详细。自己也尝试着写了一些代码,调试通过。链表的反转方法有很多种。采用游标指针遍历,修改next指针是常用的方法。一般地,需要定义三个指针,比如本文中,定义为 Node *cur,*pNext,*pre; 其中,cur用来保存反转后的头指针;pNext是游标,用来遍历链表并将各个节点的next指针值修改为前一个节点地址;而pre...

Sunshine 450

AFSim2.9.0学习笔记 —— 2、AFSim的Wizard软件概述(ArkSIM集成开发环境 (IDE))

AFSim2.9.0学习笔记 —— 2、AFSim的Wizard软件详述(ArkSIM集成开发环境 (IDE))

923

【TC3xx芯片】TC3xx芯片PFlash的ECC校验问题补充

TC3xx芯片PFlash的ECC校验问题补充

qq_36056498的博客 1153

Leetcode206. 反转链表

Leetcode206. 反转链表 题目: 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 题解: 将当前节点的指针指向上一个节点 然后更新当前节点和下一个节点的值即顺移 scala代码如下: /** * * @param head ...

会流泪de鱼的博客 322

Python爬虫实战:基于Scrapy与Playwright的搜狐新闻高效爬取

在当今信息爆炸的时代,网络爬虫技术已成为数据获取和分析的重要工具。作为国内领先的新闻门户网站,搜狐新闻包含了大量有价值的新闻数据,这些数据对于舆情分析、市场研究等领域具有重要意义。本文将详细介绍如何使用Python最新的爬虫技术栈(Scrapy框架结合Playwright浏览器自动化工具)来高效爬取搜狐新闻数据。pythontitle = scrapy.Field() # 新闻标题url = scrapy.Field() # 新闻链接。

2201_76125261的博客 1554

链表反转原理与实现:面试必考技术解析

链表作为基础数据结构,通过指针域实现动态内存管理,其核心操作涉及指针重定向与节点关系维护。反转链表通过改变指针方向实现倒序排列,既考察指针操作基本功,又体现递归/迭代的算法思维。在工程实践中,该技术广泛应用于浏览器历史记录管理、消息队列处理等场景。以LeetCode 206题为典型案例,迭代法通过prev/curr/next三指针实现O(1)空间复杂度,而递归法则以O(n)栈空间为代价简化代码逻辑。大厂面试常以此题检验边界处理能力,约40%候选人会忽略指针丢失或成环问题。掌握链表反转对理解区块链、文本编辑器

weixin_34357436的博客 369

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

scala数据结构(四):链表

文章目录链表单向链表 链表 链表是一种有序列表.其中的各对象按线性顺序排列 数组的线性顺序是由数组下标决定的,而链表的顺序是由各个对象里的指针决定的 使用链表结果可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分使用计算机内存空间,灵活的内存动态管理,但是链表失去了数组随机读取的优点,同时链表由于增加了节点的指针域,空间开销比较大 链表作为一种基础的数据结构,可以用来生成其他类型的数据结构,可以分为单向链表,双向链表,循环链表 单向链表 单向链表是最简单的链表,它包含两个域,一个是信息域,一个是指

张不帅 1137

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

scala反转字符串_Scala程序反转字符串

scala反转字符串 反转字符串 (Reversing a string) Logically, reversing is swapping the values from index 1 with index n, index 2 with index n-1, and so on. 从逻辑上讲,反向是将索引1中的值与索引n交换,将索引2中的值与索引n-1交换,依此类推。 So, if th...

cumtb2009的博客 1546

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

反转链表-四种方法

反转链表 链接 题目:描述 给定一个单链表的头结点head,长度为n,反转该链表后,返回新链表的表头。 以上转换过程如下图所示: 示例1 输入: {1,2,3} 返回值: {3,2,1} 示例2 输入: {} 返回值: {} 复制 说明: 空链表则输出空 1.迭代法 因为单链表只能由当前节点查找到后一个节点,因此使用迭代法时,需要保存当前节点的后一个节点。 curr 指向链表的当前节点,next 保存curr节点的下一个节点(因为是单链表,不保存的话,改变方向之后就找不到旧节点的

y_h_k_666的博客 2万+

Scala数组反转

object er extends App{ val st = Array[String]("A","B","C") // 数组反转 val r = st.reverse r.foreach(i => { print(i) }) } 运算结果: 注意: reverse 是反转的关键字 ...

山海 2936

倒序输出链表

一、思路 利用栈或者递归来实现链表的倒序 二、代码 /** *倒序输出链表 */ public class Solution2 { public void reverseList(ListNode list) { if(list==null) { return;

陈旭媛 332

206. 反转链表

题目描述: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[] 提示: 链表中节点的数目范围是 [0, 5000] -5000 <= Node.val <= 5000 进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题? 来...

weixin_43098069的博客 883

leetcode:反转字符串(scala)

题目 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 输入:["h","e","l","l","o"] 输出:["o","l","l","e","h"] 示例...

从一点一滴做起 1216

scala做字符串反转

val oldStr = “1234” var newStr = "" for ( i<-0 until oldStr.length) newStr = oldStr.charAt(i) +newStr

weixin_42474635的博客 1188

深入理解Scala隐式值:编译期自动装配

用implicit标记一个valdef或object// 隐式val:一个现成的值// 隐式def:需要时才构造(可以带隐式参数,形成链式推导)// 隐式object:单例它们和普通定义没有运行时区别,唯一的区别是——它们被登记进了"隐式候选池",可以被编译器自动取用。隐式值看起来是"让你少写参数",本质上它提供的是一种编译期的、按类型自动装配的机制。工程层面:上下文依赖(执行上下文、配置、序列化器)声明一次自动流转,不用层层透传,缺失和冲突在编译期暴露抽象层面。

https://starzy1990.github.io/ 231

深入理解Scala嵌套函数:作用域封装之道

我写这篇文章的时候,特意没罗列嵌套函数有多少种写法——因为写法很简单,谁都能写。嵌套函数为什么重要?辅助逻辑的作用域应该是多大?Java里你写辅助逻辑,只能写到类级别——因为Java的方法必须定义在类级别。但很多辅助逻辑其实只属于某一个函数,不属于整个类。你把它们写到类级别,就造成了作用域放大——本来应该是函数内部的东西,变成了类级别的东西。Scala的嵌套函数把这个问题解决了——辅助逻辑可以精确地封装在主函数内部。它直接访问外层函数的变量,不用把上下文传来传去。它不暴露到类级别,不造成API膨胀。

https://starzy1990.github.io/ 795

深入理解Scala隐式函数:自动类型转换

用implicit标记一个单参数的def// 把Celsius转成Fahrenheitval f: Fahrenheit = Celsius(100.0) // 自动转换它和普通函数运行时完全一样,唯一区别是被登记进隐式候选池,允许编译器在需要时自动调用。// Scala 3你必须先,等于明确告诉编译器和读代码的人:“我清楚这里在用隐式转换”。隐式函数(隐式转换)是Scala隐式体系里能力最直接、但也最需要敬畏的一环。

https://starzy1990.github.io/ 373
上一篇: windows下安装python 版SCIP优化求解器
下一篇: Scala检测链表环(leetCode 141)
小糖宝
博客等级 码龄9年 47粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值