国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

用 JavaScript 實現鏈表操作 - 07 Append

jone5679 / 408人閱讀

摘要:需求實現一個函數,把兩個鏈表連接起來,并返回連接后的鏈表頭結點。遞歸版本本身就可以作為遞歸的邏輯。實際上等于,直到遞歸到末尾,這時直接返回即可。代碼如下參考資料的代碼實現的測試

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
}
循環版本

循環的思路是,在 listAlistB 都不為空的情況下,先找到 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

相關文章

  • JavaScript 實現鏈表操作 - 12 Front Back Split

    摘要:需求實現函數把鏈表居中切分成兩個子鏈表一個前半部分,另一個后半部分。提示一個簡單的做法是計算鏈表的長度,然后除以得出前半部分的長度,最后分割鏈表。最后用把數組轉回鏈表。參考資料的代碼實現的測試 TL;DR 把一個鏈表居中切分成兩個,系列目錄見 前言和目錄 。 需求 實現函數 frontBackSplit() 把鏈表居中切分成兩個子鏈表 -- 一個前半部分,另一個后半部分。如果節點數為奇...

    daryl 評論0 收藏0
  • JavaScript 數據結構與算法之美 - 線性表(數組、棧、隊列、鏈表

    摘要:每個線性表上的數據最多只有前和后兩個方向。數組鏈表隊列棧等就是線性表結構。非線性表數據之間并不是簡單的前后關系。不包含任何元素的棧稱為空棧。移除棧頂的元素,同時返回被移除的元素。 showImg(https://segmentfault.com/img/bVbuvnj?w=900&h=250); 前言 基礎知識就像是一座大樓的地基,它決定了我們的技術高度。 我們應該多掌握一些可移值的...

    kaka 評論0 收藏0
  • 學習JavaScript數據結構與算法(二):鏈表

    摘要:實現移除給定的元素要移除的元素返回值表示移除成功方法說明移除單向鏈表中某個位置的元素。的前端樂園原文鏈接寒假前端學習學習數據結構與算法二鏈表 本系列的第一篇文章: 學習JavaScript數據結構與算法(一),棧與隊列第二篇文章:學習JavaScript數據結構與算法(二):鏈表第三篇文章:學習JavaScript數據結構與算法(三):集合第四篇文章:學習JavaScript數據結構與...

    lolomaco 評論0 收藏0
  • Javascript的數據結構與算法(一)

    摘要:對數組中的每一項運行給定函數,返回改函數會返回的項組成的數組。將所有的數組元素鏈接成一個字符串。數組合并方法可以向一個數組傳遞數組對象或是元素。通過棧實現對正整數的二進制轉換。源碼地址的數據結構與算法一源碼 1數組 1.1方法列表 數組的常用方法如下: concat: 鏈接兩個或者更多數據,并返回結果。 every: 對數組中的每一項運行給定的函數,如果該函數對每一項都返回true...

    VioletJack 評論0 收藏0
  • 學習數據結構與算法之鏈表

    摘要:本系列所有文章第一篇文章學習數據結構與算法之棧與隊列第二篇文章學習數據結構與算法之鏈表第三篇文章學習數據結構與算法之集合第四篇文章學習數據結構與算法之字典和散列表第五篇文章學習數據結構與算法之二叉搜索樹簡單介紹鏈表鏈表一種常見的數據結構,可 本系列所有文章:第一篇文章:學習數據結構與算法之棧與隊列第二篇文章:學習數據結構與算法之鏈表第三篇文章:學習數據結構與算法之集合第四篇文章:學習數...

    jerryloveemily 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<