【发布时间】:2019-01-26 16:38:12
【问题描述】:
我正在尝试创建一个递归方法,它采用 Integer 的 List 并返回一个新的 List,只有原始 List 的正数。
这就是我所做的
static List<Integer> positives(List<Integer> a) {
if (a.getTail().isEmpty())
return new List<Integer>(a.getHead(), new List<Integer>());
if (a.getHead() - a.getHead() == 0)
new List<Integer>(a.getHead(), new List<Integer>());
return positives(a.getTail());
else
return positives(a.getTail());
所以当List 的头部为正时,它应该将它添加到一个新列表中,然后方法循环。如果头部不是积极的,它只是循环。当到达List 的末尾时,它应该返回包含正数的列表。
我可以用我目前的代码告诉isEmpty() 语句返回一个与肯定检查语句完全不同的列表,这是我出错的地方。所以我不知道当循环到达List的末尾时如何从第二个if语句返回列表@
【问题讨论】:
-
为什么需要递归?
-
看来你需要一个辅助方法。
-
你使用的 List 实现是什么?
-
除非这是一个学习递归的课堂项目,否则这是一个糟糕的技术。正如@Flo 暗示的那样,这绝不需要递归。