【发布时间】:2015-10-04 18:01:16
【问题描述】:
我们可以将链表表示的 2 个数字相加(如讨论的 here)使用 - 1.堆栈 2. 递归 现在我想将这种方法推广到“N”个链表。处理这个问题的最佳方法是什么?
【问题讨论】:
-
在表示中,第一个数字是在栈顶还是栈底?
-
定义最佳。内存占用?执行时间处理时间?易于编码或维护?这三者的加权组合?完全不同的东西 - 什么?
-
所以 N 个并行的堆栈已经出局。一次添加两个 - 请参阅@aniketsiva 的答案。你还期待什么?
-
@laune 所以 N 个列表的泛化将简化为添加 2 个列表 n-1 次,除了这种明显的方法,我们还能想到什么。就像更新 N 个列表的递归方法一样。但是这种做法会增加很多检查。并且正如 aniket 还指出的那样,递归方法与“堆栈”方法没有什么不同,那么我们应该如何比较这些方法呢?
-
递归表示栈在栈段中,否则为对象。并行运行多个递归只需要尽可能多的堆栈。除了对象的一些开销(每个递归级别 N 堆栈或数组 [N])之外,没有太大区别。
标签: java algorithm optimization linked-list sum