190505打卡 兩個單鏈表生成相加鍊錶

2021-09-21 02:10:07 字數 1050 閱讀 8774

題目描述:

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

例如:9->3->7,既可以代表整數937。

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

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

思路:將兩個鍊錶分別反轉,同步遍歷兩個鍊錶,將兩個鍊錶的值相加,注意在相加過程中產生的進製資訊,當遍歷完兩個鍊錶以後,要判斷進製資訊是否為1,如果為1還要生成乙個值為1的節點,最後在將兩個鍊錶反轉,和最原始的鍊錶結構一樣

public

class

code_017_addlist

}public

static node addlist

(node head1, node head2)

//反轉鍊錶head1

head1 =

reverselist

(head1)

;//反轉鍊錶head2

head2 =

reverselist

(head2)

;int carrybit =0;

//儲存進製資訊

int val =0;

int n1 =0;

int n2 =0;

node cur1 = head1;

node cur2 = head2;

node next = null;

node cur = null;

while

(cur1 != null || cur2 != null)

if(carrybit ==1)

reverselist

(head1)

;reverselist

(head2)

;return cur;

}public

static node reverselist

(node head)

return prev;

}}

2019 04 09打卡(資料結構單鏈表2)

單鏈表的刪除和尾插法建立部分 來自教材 1 int remove linklist first,int i,datatype x 11 刪除表中第i個元素,通過引用型引數x返回該元素的值 1 尾插法建立單鏈表 2 include linklist.h 3 void createlistrear li...

兩個單鏈表生成相加鍊錶

題目 假設鍊錶中每乙個節點的值都在0 9之間,那麼鍊錶整體就可以代表乙個整數。例如9 3 7,代表937.給定兩個這種鍊錶的頭節點head1和head2,請生成代表兩個整數相加值的結果鍊錶。例如 9 3 7和6 3,相加結果為1 0 0 0 兩個單鏈表生成相加鍊錶 方法1 利用棧結構求解 publi...

兩個單鏈表生成相加鍊錶

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