我有一个关于如何编写一个函数的问题,它将为我提供手动链表中元素的总和。我试过这样但它不起作用: function insert()在列表中插入元素。
public class list {
int head;
List tail;
int sum=0;
int value;
public void insert(int elt){
if(tail == null){
tail = new list();
tail.head = elt;
}
else{
tail.insert(elt);
}
}
public int sum(list head){
if(head!=null){
sum += head;
return tail.sum(head);
}
return sum;
}
}
答案 0 :(得分:3)
这类事物的代码(即“手动”链表迭代)是这样的:
def permuteHelper(self, nums, index, path, res):
if len(nums) == 0:
res.append(path)
for i in range(len(nums)):
copy = list(nums)
val = copy.pop(i)
self.permuteHelper(copy, i, [val] + path, res)
def permute(self, nums):
res = []
self.permuteHelper(nums, 0,[], res)
return res
使用
public int calculateSum(MyList list) {
Node node = list.head();
int sum = 0;
while (node != null) {
sum += node.value();
node = node.next();
}
return sum;
}
答案 1 :(得分:1)
为什么不使用java中的List Object? 您可以将此函数用于列表中元素的总和:
public static int sum (List<Integer> list) {
int sum = 0;
for (int i: list) {
sum += i;
}
return sum;
}