blog

連鎖表形式での2つの数値の加算

2つの非負整数を表す2つの空でない連結リストが与えられます。ビットは逆順にソートされ、各ノードには1つの数値のみが格納されています。 先頭ノードを操作するには、ダミー・ノード dummy を作成し、 ...

Aug 10, 2020 · 1 min. read
シェア

つの負でない整数を表す2つの空でない連結リストが与えられます。桁は逆順にソートされ、各ノードには1つの数値のみが格納されます。

要件

入力:(2-)>4->3) + (5->6->4)
出力:7>0->8
342 理由+465=807

感想です:

ヘッド・ノードを操作するには、ダミー・ノード dummy を作成し、dummy->next を使用して真のヘッド・ノードを表現することを検討します。変数を使用して丸めを追跡し、有効な最下位ビットを含むテーブルのヘッダから始まるビットごとの加算をシミュレートします。

リスト l1 と l2 のヘッダである有効な最下位ビットを加算することから始めます。丸めを考慮

感想

class Solution {
 public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
 ListNode dummyHead = new ListNode(0);
 ListNode p = l1, q = l2, curr = dummyHead;
 int carry = 0;
 while (p != null || q != null) {
 int x = (p != null) ? p.val : 0;
 int y = (q != null) ? q.val : 0;
 int sum = x + y + carry;
 
 carry = sum / 10;
 curr.next = new ListNode(sum % 10);
 curr = curr.next;
 if (p != null) p = p.next;
 if (q != null) q = q.next;
 }
 if (carry > 0) {
 curr.next = new ListNode(carry);
 }
 return dummyHead.next;
 }
}
Read next

リフローと再描画

I. 概念\n再配置:要素の幅と高さ、または要素の位置の変更など、DOMの変更がトリガーとなって要素の幾何学的プロパティが変更されると、ブラウザは要素の幾何学的プロパティを再計算してレンダリングツリーを再構築する必要があります。\n再描画:再配置が完了すると、再構築された

Aug 10, 2020 · 2 min read