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

2021-10-03 19:08:06 字數 1516 閱讀 6633

用單向鍊錶表示十進位制整數,求兩個正整數的和。如,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

就是單向鍊錶的翻轉,然後進行計算,然後在翻轉,即可得出答案

public

class

main

//用單向鍊錶表示十進位制整數,求兩個正整數的和。如,1234+34=1268,注意單項鍊表的方向從前向後,不允許使用其他資料結構。

// 節點類

static

class

node

}// 翻轉鍊錶

public

static node reverse

(node node)

// 實現鍊錶反轉,我們需要從第二個節點開始遍歷,將當前節點的 next 指向前乙個節點。這裡需要注意的是,該變當前節點的 next 時,需要提前儲存 next,不然遍歷就會中斷。

// 時間複雜度 o(n);空間複雜度 o(1)。

// 第乙個節點

node pre = node;

// 第二個節點

node current = node.next;

// 第乙個節點變成最後乙個節點後,next為null

pre.next = null;

while

(current != null)

return pre;

}// 列印鍊錶

public

static

void

printlinkedlist

(node node)

doelse

node = node.next;

}while

(node !=null);}

// 構造鍊錶

public

static node createlinkedlist

(int i)

else

}return header;

}//計算的單向鍊錶求和

public

static node add

(node node1, node node2)

if(node2 != null)

// 對應位置的數字

p.next =

newnode

(sum %10)

;// 滿10進製

sum = sum /10;

p = p.next;

}return listnode.next;

}}

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

假設這些數字是正向存放的。將value以及l1和l2的data相加 int value carry if l1 null if l2 null result.data value 10 求和結果的個數 遞迴 linkedlistnode more addlists l1 null?null l1.n...

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

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

1 位運算 題六 用二進位制表示十進位制小數

題目 將十進位制小數用二進位制表示,如果不能用32位小數表示,則輸出 error 思路 1.將小數乘以2,若結果大於1,則將二進位製小數字上表示1,並將結果減1 2.若結果小於1,則繼續乘以2,迴圈1,2兩步,直至結果等於0 3.若小數的位數超過34位,則輸出 error 結束迴圈。public c...