題目描述:
假設鍊錶中每乙個節點的值都在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...