📌  相关文章
📜  用于减去表示为链接列表的两个数字的 Javascript 程序

📅  最后修改于: 2022-05-13 01:57:45.241000             🧑  作者: Mango

用于减去表示为链接列表的两个数字的 Javascript 程序

给定两个表示两个大正数的链表。从较大的数字中减去较小的数字,并将差值作为链表返回。请注意,输入列表可以是任何顺序,但我们总是需要从较大的列表中减去较小的列表。
可以假设输入列表中没有额外的前导零。
例子:

Input: l1 = 1 -> 0 -> 0 -> NULL,  l2 = 1 -> NULL
Output: 0->9->9->NULL
Explanation: Number represented as 
lists are 100 and 1, so 100 - 1 is 099

Input: l1 = 7-> 8 -> 6 -> NULL,  l2 = 7 -> 8 -> 9 NULL
Output: 3->NULL
Explanation: Number represented as 
lists are 786 and  789, so 789 - 786 is 3, 
as the smaller value is subtracted from 
the larger one.

方法:以下是步骤。

  1. 计算给定两个链表的大小。
  2. 如果大小不同,则在较小的链表中附加零。
  3. 如果大小相同,请按照以下步骤操作:
    1. 找到较小值的链表。
    2. 从较大的链表中一一减去较小链表的节点。减法时跟踪借位。

以下是上述方法的实现。

Javascript


输出:

0 9 9 

复杂性分析:

  • 时间复杂度: O(n)。
    因为不需要嵌套遍历链表。
  • 辅助空间: O(n)。
    如果考虑递归堆栈空间,则需要 O(n) 空间。

有关更多详细信息,请参阅有关以链接列表表示的减去两个数字的完整文章!