
題目要求我們模擬大數(shù)加法 注意點(diǎn): 1.因?yàn)榇鎯?chǔ)是反過(guò)來(lái)的,即數(shù)字342存成2->4->3,所以要注意進(jìn)位是向后的; 2.鏈表l1或l2為空時(shí),直接返回,這是邊界條件,省掉多余的操作; 3.鏈表l1和l2長(zhǎng)度可能不同,因此要注意處理某個(gè)鏈表剩余的高位; 4.2個(gè)數(shù)相加,可能會(huì)產(chǎn)生最高位的進(jìn)位,因此要注意在完成以上1-3的操作后,判斷進(jìn)位是否為0,不為0則需要增加結(jié)點(diǎn)存儲(chǔ)最高位的進(jìn)位。 解題代碼如下
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode result = null; ListNode header = null; int be_flag = 0; if (l1 == null) { return l2; } if (l2 == null) { return l1; } if (l1 == null && l2 == null) { return null; } while (l1 != null || l2 != null||be_flag!=0) { int val = 0; if (l1 != null) { val += l1.val; } if (l2 != null) { val += l2.val; } if (be_flag > 0) { val += 1; be_flag--; System.out.新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注