【发布时间】:2018-09-03 17:20:20
【问题描述】:
我是 scala 的新手,想编写一个代码,按照下面给出的示例在 scala 中添加两个由链表表示的数字
输入: 第一个列表:5->6->3 //代表数字 365 第二个列表:8->4->2 //代表数字 248 输出 结果列表:3->1->6 //代表数字 613
我已经在 Scala 中实现了一个可变单链表代码,用于向链表添加、更新和插入元素。在下面找到我的代码
class SinglyLinkedList[A] extends ListADT[A] {
private class Node(var data: A,var next: Node)
private var head: Node = null
def apply(index: Int): A = {
require(index >= 0)
var rover = head
for (i <- 0 until index) rover = rover.next
rover.data
}
def update(index: Int,data: A): Unit = {
require(index >= 0)
var rover = head
for (i <- 0 until index) rover = rover.next
rover.data = data
}
def insert(index: Int,data: A): Unit = {
require(index >= 0)
if(index == 0) {
head = new Node(data, head)
}
else{
var rover = head
for (i <- 0 until index-1)
rover = rover.next
rover.next = new Node(data, rover.next)
}
}
def remove(index: Int): A = {
require(index >= 0)
if(index == 0){
val ret = head.data
head = head.next
ret
} else {
var rover = head
for (i <- 0 until index-1) rover = rover.next
val ret = rover.next.data
rover.next = rover.next.next
ret
}
}
}
谁能告诉我我将如何执行链表表示的两个数字的相加。
【问题讨论】:
-
您的问题是什么?你卡在哪一部分?我建议你用文字写出解决问题所需的步骤。想想你如何手动添加数字。
-
你试过什么方法吗?怎么手动加法?你能把手动加法转换成代码吗?
-
您的问题是什么?你卡在哪里了?