求兩個用鍊錶表示的整數的和

2021-07-04 16:25:28 字數 1715 閱讀 6315

假設這些數字是正向存放的。

/*將value以及l1和l2的data相加*/

int value = carry;

if (l1 != null)

if (l2 != null)

result.data = value % 10;/*求和結果的個數*/

/*遞迴*/

linkedlistnode more = addlists(l1==null?null:l1.next,l2==null?null:l2.next,value>=10?1:0);

result.setnext(more);

return result;}

在實現這段**時,務必注意處理乙個鍊錶比另乙個鍊錶結點少的情況。不然可能會出現指標異常。

高階

//對兩個鍊錶求和

partialsum sum=addlistshelper(l1,l2);

//如有進製,則插入鍊錶首部,否則,直接返回整個鍊錶

if(sum.carry==0)

else

}partialsum addlistshelper(linkedlistnode l1,linkedlistnode l2)

//對較小數字遞迴求和

partialsum sum=addlisthelper(l1.next,l2.next);

//將進製和當前資料相加

int val=sum.carry +l1.data+l2.data;

//插入當前數字的求和結果

linkedlistnode full_result=insertbefore(sum.sum,val%10);

//返回求和結果和進製值

sum.sum=full_result;

sum.carry=val/10;

return sum;

}//用零填充鍊錶

linkedlistnode padlist(linkedlistnode l,int padding)

return head;

}//輔助函式,將結點插入鍊錶首部

linkedlistnode insertbefore(linkedlistnode list,int data)

return node;}

Java 對兩個用鍊錶表示的整數求和

給定兩個用鍊錶表示的整數,每個結點包含乙個數字。這些數字是反向存放的,也就是個位排在鍊錶首部。編寫函式對這兩個整數求和,並用鍊錶形式返回結果。public linkedlist addlists linkedlist l1,linkedlist l2,int carry 注意要避開空指標一場,如果兩...

用單向鍊錶表示十進位制整數,求兩個正整數的和

用單向鍊錶表示十進位制整數,求兩個正整數的和。如,1234 34 1268,注意單項鍊表的方向從前向後,不允許使用其他資料結構。如下圖 正常計算 1 2 3 4 3 41 2 6 8 思路結果 4 3 2 1 4 38 6 2 1 1 2 6 8 就是單向鍊錶的翻轉,然後進行計算,然後在翻轉,即可得...

鍊錶表示的兩數相加

給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 一 public listnode addt...