兩個鍊錶生成相加鍊錶

2021-10-16 05:21:01 字數 1120 閱讀 1244

假設鍊錶中每乙個節點的值都在 0 - 9 之間,那麼鍊錶整體就可以代表乙個整數。

給定兩個這種鍊錶,請生成代表兩個整數相加值的結果鍊錶。

例如:鍊錶 1 為 9->3->7,鍊錶 2 為 6->3,最後生成新的結果鍊錶為 1->0->0->0。

示例1

[9,3,7],[6,3]
//方法二:使用棧,不需要反轉鍊錶

public listnode addinlistii(listnode head1, listnode head2)

while (p2 != null)

int carry = 0;

listnode dummy = new listnode(-1);

while (!s1.empty() || !s2.empty() || carry != 0)

if (!s2.empty())

listnode cur = new listnode(sum % 10);

cur.next = dummy.next;

dummy.next = cur;

carry = sum / 10;

}return dummy.next;

}//方法一:先反轉兩鍊錶

//定義虛擬節點dummy和prev,prev指向dummy

//定義進製carry,迴圈遍歷兩鍊錶,將兩鍊錶的值相加,並將prev指標指向相加的值

//最後將相加後鍊錶再反轉即可

//時間複雜度o(max(m,n)),其中m,n為兩鍊錶的長度

//空間複雜度o(max(m,n))

public listnode addinlisti(listnode head1, listnode head2)

if (l2 != null)

prev.next = new listnode(sum % 10);

prev = prev.next;

carry = sum / 10;

}return reverse(dummy.next);

}private listnode reverse(listnode head)

return node;

}

兩個鍊錶生成相加鍊錶

假設鍊錶中每乙個節點的值都在 0 9 之間,那麼鍊錶整體就可以代表乙個整數。給定兩個這種鍊錶,請生成代表兩個整數相加值的結果鍊錶。例如 鍊錶 1 為 9 3 7,鍊錶 2 為 6 3,最後生成新的結果鍊錶為 1 0 0 0。示例1 9,3,7 6,3 struct listnode class so...

演算法 兩個鍊錶生成相加鍊錶

題目描述 假設鍊錶中每乙個節點的值都在 0 9 之間,那麼鍊錶整體就可以代表乙個整數。給定兩個這種鍊錶,請生成代表兩個整數相加值的結果鍊錶。例如 鍊錶 1 為 9 3 7,鍊錶 2 為 6 3,最後生成新的結果鍊錶為 1 0 0 0。public listnode addinlist listnod...

刷題 兩個鍊錶生成相加鍊錶

兩個鍊錶,分別表示2個整數,每個鍊錶的節點含有數值0 9 比如9 3 7 和 6 3 相加,得到1 0 0 0 解 將2個鍊錶分別反向,將反向後的鍊錶相加,將得到的鍊錶反向,即可得到解 1 兩個單鏈表生成相加鍊錶 2public static node addlist node head1,node...