摘要:題目描述給出兩個非空的鏈表用來表示兩個非負的整數。如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。您可以假設除了數字之外,這兩個數都不會以開頭。回到本題把兩個鏈表之和存入一個數組,是進位數如果有進位,推入數組
題目描述:給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,并且它們的每個節點只能存儲 一位 數字。
如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。
您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
示例:
輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出:7 -> 0 -> 8
原因:342 + 465 = 807
題外話: 在leetcode上Listnode構造函數和測試用例的Listnode單鏈表都是生成好的,我們在本地node環境怎么生成自己的Listnode單鏈表呢,可以用如下方法.
function ListNode(val) { this.val = val; this.next = null; } function getRe(i) { var listNode = new ListNode(c[i]); if (c[i + 1] || c[i + 1] === 0) { listNode.next = getRe(i + 1) } return listNode } var c = [1, 2, 3] var list1 = getRe(0) c = [4, 5, 6,7] var list2 = getRe(0)
這樣就生成了兩個Listnode單鏈表。
回到本題
/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} l1 * @param {ListNode} l2 * @return {ListNode} */ var addTwoNumbers = function(l1, l2) { var v1, v2, sum; var cur1 = l1; var cur2 = l2; var j = 0; var c = []; //把兩個鏈表之和存入一個數組,j是進位數 while (cur1 != null || cur2 != null) { v1 = (cur1 != null) ? cur1.val : 0; v2 = (cur2 != null) ? cur2.val : 0; sum = v1 + v2 + j; j = parseInt(sum / 10); c.push(sum % 10); if (cur1 != null){ cur1 = cur1.next; } if (cur2 != null){ cur2 = cur2.next; } } //如果有進位,推入數組 if (j > 0) { c.push(j); } function getRe(i){ var listNode = new ListNode(c[i]); if(c[i+1] || c[i+1] === 0) { listNode.next = getRe(i+1) } return listNode } return getRe(0); };
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100351.html
摘要:給定表,存在函數,對任意給定的關鍵字值,代入函數后若能得到包含該關鍵字的記錄在表中的地址,則稱表為哈希表,函數為哈希函數。而中的對象就是基于哈希表結構,所以我們構造一個對象即可,是當前遍歷到的值,是其與目標值的差。 大部分玩前端的小伙伴,在算法上都相對要薄弱些,畢竟調樣式、調兼容就夠掉頭發的了,哪還有多余的頭發再去折騰。 確實在前端中需要使用到算法的地方是比較少,但若要往高級方向發展,...
摘要:給出兩個非空的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式存儲的,并且它們的每個節點只能存儲一位數字。如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。您可以假設除了數字之外,這兩個數都不會以開頭。 給出兩個?非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照?逆序?的方式存儲的,并且它們的每個節點只能存儲?一位?數字。 如果,我們將這兩...
摘要:更新之前說感覺優秀答案的最后三行可以用尾遞歸優化不知道尾遞歸的小伙伴可以點這里,仔細想了一下,并不能。尾遞歸的實現,往往需要改寫遞歸函數,確保最后一步只調用自身。 上周日就想寫vue.nextTick的源碼分析,可是總是不知道從哪兒下手,今天有時間,先把leetcode第二題補了,感覺這道題還挺簡單的 一、題目 兩數相加: 給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自...
摘要:給出兩個非空的鏈表用來表示兩個非負的整數。如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。需要考慮到兩個鏈表長度不同時遍歷方式鏈表遍歷完成時最后一位是否需要進一位。 ?給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,并且它們的每個節點只能存儲 一位 數字。如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。 ...
摘要:給出兩個非空的鏈表用來表示兩個非負的整數。如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。需要考慮到兩個鏈表長度不同時遍歷方式鏈表遍歷完成時最后一位是否需要進一位。 ?給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,并且它們的每個節點只能存儲 一位 數字。如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。 ...
閱讀 1748·2023-04-25 16:28
閱讀 684·2021-11-23 09:51
閱讀 1467·2019-08-30 15:54
閱讀 1149·2019-08-30 15:53
閱讀 2816·2019-08-30 15:53
閱讀 3413·2019-08-30 15:43
閱讀 3250·2019-08-30 11:18
閱讀 3261·2019-08-26 10:25