摘要:需求實現一個函數,把兩個鏈表連接起來,并返回連接后的鏈表頭結點。遞歸版本本身就可以作為遞歸的邏輯。實際上等于,直到遞歸到末尾,這時直接返回即可。代碼如下參考資料的代碼實現的測試
TL;DR
把一個鏈表連接到另一個鏈表的末尾。系列目錄見 前言和目錄 。
需求實現一個 append() 函數,把兩個鏈表連接起來,并返回連接后的鏈表頭結點。
var listA = 1 -> 2 -> 3 -> null var listB = 4 -> 5 -> 6 -> null append(listA, listB) === 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> null
如果兩個鏈表都是 null 就返回 null ,如果其中一個是 null 就返回另一個鏈表。
遞歸版本append 本身就可以作為遞歸的邏輯。append(listA, listB) 實際上等于 listA.next = append(listA.next, listB) ,直到 listA 遞歸到末尾 null ,這時 append(null, listB) 直接返回 listB 即可。加上邊界條件判斷,代碼如下:
function append(listA, listB) { if (!listA) return listB if (!listB) return listA listA.next = append(listA.next, listB) return listA }循環版本
循環的思路是,在 listA 和 listB 都不為空的情況下,先找到 listA 的尾節點,假設為 node ,然后 node.next = listB 即可。代碼如下:
function appendV2(listA, listB) { if (!listA) return listB if (!listB) return listA let node = listA while (node.next) node = node.next node.next = listB return listA }參考資料
Codewars Kata
GitHub 的代碼實現
GitHub 的測試
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81106.html
摘要:需求實現函數把鏈表居中切分成兩個子鏈表一個前半部分,另一個后半部分。提示一個簡單的做法是計算鏈表的長度,然后除以得出前半部分的長度,最后分割鏈表。最后用把數組轉回鏈表。參考資料的代碼實現的測試 TL;DR 把一個鏈表居中切分成兩個,系列目錄見 前言和目錄 。 需求 實現函數 frontBackSplit() 把鏈表居中切分成兩個子鏈表 -- 一個前半部分,另一個后半部分。如果節點數為奇...
摘要:每個線性表上的數據最多只有前和后兩個方向。數組鏈表隊列棧等就是線性表結構。非線性表數據之間并不是簡單的前后關系。不包含任何元素的棧稱為空棧。移除棧頂的元素,同時返回被移除的元素。 showImg(https://segmentfault.com/img/bVbuvnj?w=900&h=250); 前言 基礎知識就像是一座大樓的地基,它決定了我們的技術高度。 我們應該多掌握一些可移值的...
摘要:實現移除給定的元素要移除的元素返回值表示移除成功方法說明移除單向鏈表中某個位置的元素。的前端樂園原文鏈接寒假前端學習學習數據結構與算法二鏈表 本系列的第一篇文章: 學習JavaScript數據結構與算法(一),棧與隊列第二篇文章:學習JavaScript數據結構與算法(二):鏈表第三篇文章:學習JavaScript數據結構與算法(三):集合第四篇文章:學習JavaScript數據結構與...
摘要:對數組中的每一項運行給定函數,返回改函數會返回的項組成的數組。將所有的數組元素鏈接成一個字符串。數組合并方法可以向一個數組傳遞數組對象或是元素。通過棧實現對正整數的二進制轉換。源碼地址的數據結構與算法一源碼 1數組 1.1方法列表 數組的常用方法如下: concat: 鏈接兩個或者更多數據,并返回結果。 every: 對數組中的每一項運行給定的函數,如果該函數對每一項都返回true...
摘要:本系列所有文章第一篇文章學習數據結構與算法之棧與隊列第二篇文章學習數據結構與算法之鏈表第三篇文章學習數據結構與算法之集合第四篇文章學習數據結構與算法之字典和散列表第五篇文章學習數據結構與算法之二叉搜索樹簡單介紹鏈表鏈表一種常見的數據結構,可 本系列所有文章:第一篇文章:學習數據結構與算法之棧與隊列第二篇文章:學習數據結構與算法之鏈表第三篇文章:學習數據結構與算法之集合第四篇文章:學習數...
閱讀 1906·2021-11-22 14:44
閱讀 1672·2021-11-02 14:46
閱讀 3657·2021-10-13 09:40
閱讀 2599·2021-09-07 09:58
閱讀 1586·2021-09-03 10:28
閱讀 1658·2019-08-29 15:30
閱讀 976·2019-08-29 15:28
閱讀 1468·2019-08-26 12:20