我正在处理一个链表问题,这是我的代码的问题,我遇到了三个错误,请帮忙。
编写一个名为“odd”的函数,它接受一个链表并返回奇数元素。实际上,编写两个函数,分别称为“奇数”和“偶数”。odd(L) 返回 L 中第 1、3、5... 项的列表。 even(L) 返回 L 中第 2、4、6... 项的列表。每个函数调用另一个。这两个功能是基于一个简单的观察。L.next 类似于 L,但缺少第一项。如果我们去掉第一个项目,项目 N+1 就变成了项目 N。所以 L 的第 2、3、4 个元素是 L.next 的第 1、2、3 个元素。现在如果 N+1 是奇数,N 是偶数,而如果 N+1 是偶数,N 是奇数。所以 L.next 的奇数成员是 L 的偶数成员,L.next 的偶数成员是 L 的奇数成员。然后我们可以计算奇数(L)如下。如果 L 为 null,则返回 null。否则返回第一项为 L.item 的列表,而它的尾巴是偶数(L.next)。计算偶数(L):如果 L 为 null,则返回 null。否则返回奇数(L.next)。您的 main 函数应该从命令行读取一个正整数列表,并以 -1 终止该列表。它应该形成一个包含这些整数的链表,计算奇数成员的列表,并打印它们。
我的代码:
public class linkedlist
{
public static void main(String[] args)
{
List odd = new ArrayList();
List even = new ArrayList();
odd(L, odd, even);
}
void odd(L curNode, ArrayList oddList, ArrayList evenList)
{
if (curNode == null) return;
oddList.append(curNode.val);
even(curNode, oddList, evenList);
}
void even(L curNode, ArrayList oddList, ArrayList evenList)
{
if (curNode == null || curNode.next == null) return;
evenList.append(curNode.n ext.val);
odd(curNode.next.next, oddList, evenList);
}
}