思想:既然不讓直接逆置鍊錶,則借助stack進行翻轉,然後再按從低位開始計算,並將計算後的結果存入長鍊表節點中,這裡需要額外注意:1、需要對短鍊錶中的元素要進行特殊處理因為有可能它此時為null 2、另外還需要對最高位的進製進行處理
時間複雜度o(n) 空間複雜度o(m+n) m:短鍊表的長度 n:長鍊表的長度
class solution
while(l2!=null)
linkedlistlonglist = (stack1.size()>=stack2.size())?stack1:stack2;
linkedlistshortlist = (stack1.size()0)
return temphead.next;
}}
445 兩數相加 II
這種題的用例是一定會搞一些很大的數的。long都會溢位,所以我們就不用嘗試轉數字做加法轉鍊錶的方法了。另外直接倒置兩個鍊錶再做加法的做法會改變原鍊錶,題幹也說了禁止改動原鍊錶。1.求兩個鍊錶長度,如果一長一短,把短的前面加若干個0節點,使得兩個鍊錶長度相同。之後對於就遞迴連線鍊錶。dfs函式引數為前...
445 兩數相加 II
演算法 由於鍊錶資料相加是逆序的,可以通過棧來儲存鍊錶資料,棧是先進後出,順序就變成了從末位相加,其實本題難度不大,就是不太容易想到使用棧來存資料計算。definition for singly linked list.public class listnode class solution tem...
445 兩數相加 II
445.兩數相加 ii 2.兩數相加 的擴充套件 definition for singly linked list.public class listnode class solution if c 0 return reverselist dummy.next 易錯點 優化 插入新煉表時可以採用...