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

資訊專欄INFORMATION COLUMN

用 JavaScript 實現(xiàn)鏈表操作 - 17 Iterative Reverse

only_do / 2265人閱讀

摘要:需求實現(xiàn)方法用循環(huán)的方式反轉(zhuǎn)鏈表,鏈表應該只遍歷一次。注意這個函數(shù)直接修改了鏈表本身,所以不需要返回值。解法代碼如下思路是,從前到后遍歷鏈表,對每個節(jié)點復制一份,并讓它的指向前一個節(jié)點。參考資料的代碼實現(xiàn)的測試

TL;DR

用循環(huán)的方式反轉(zhuǎn)鏈表,系列目錄見 前言和目錄 。

需求

實現(xiàn)方法 reverse() 用循環(huán)的方式反轉(zhuǎn)鏈表,鏈表應該只遍歷一次。注意這個函數(shù)直接修改了鏈表本身,所以不需要返回值。

var list = 2 -> 1 -> 3 -> 6 -> 5 -> null
reverse(list)
list === 5 -> 6 -> 3 -> 1 -> 2 -> null
解法

代碼如下:

function reverse(list) {
  if (!list) return null

  let result
  for (let node = list; node; node = node.next) {
    result = new Node(node.data, result)
  }

  list.data = result.data
  list.next = result.next
}

思路是,從前到后遍歷鏈表,對每個節(jié)點復制一份,并讓它的 next 指向前一個節(jié)點。最后 result 就是一個反轉(zhuǎn)的新鏈表了。那么如何修改 list 呢?很簡單,把 result 的首節(jié)點值賦給 list ,然后讓 list 指向 result 的第二個節(jié)點就行。

參考資料

Codewars Kata
GitHub 的代碼實現(xiàn)
GitHub 的測試

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/81731.html

相關文章

  • JavaScript 實現(xiàn)鏈表操作 - 前言和目錄

    摘要:我打算寫一個鏈表操作的系列,來自的系列,實現(xiàn)語言是。通過自己實現(xiàn)一個鏈表和常用操作,可以加深理解這類數(shù)據(jù)結構的優(yōu)缺點。鏈表經(jīng)常用來訓練指針操作,雖然這只對適用,但等高級語言中控制引用的思路其實也差不多。 TL;DR 我打算寫一個鏈表操作的系列,來自 Codewars 的 Linked List 系列 kata ,實現(xiàn)語言是 JavaScript 。這篇是開篇,簡單描述了一下我寫這個的目...

    BetaRabbit 評論0 收藏0
  • [Leetcode] Add Two Numbers 鏈表數(shù)相加

    摘要:過程同樣是對齊相加,不足位補。迭代終止條件是兩個都為。如果這是一個類的話該如何實現(xiàn)將鏈表或者數(shù)組作為成員變量,提供對其操作的各種方法。 Add Two Numbers You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order a...

    Fourierr 評論0 收藏0
  • JavaScript 實現(xiàn)鏈表操作 - 18 Recursive Reverse

    摘要:需求實現(xiàn)函數(shù)用遞歸的方式反轉(zhuǎn)鏈表。整理一番后的代碼如下上面這段代碼同時也是尾遞歸。在遞歸函數(shù)中開額外的參數(shù)很是常見的做法,也是尾遞歸優(yōu)化的必要手段。 TL;DR 用遞歸的方式反轉(zhuǎn)鏈表,系列目錄見 前言和目錄 。 需求 實現(xiàn)函數(shù) reverse() 用遞歸的方式反轉(zhuǎn)鏈表。例子如下: var list = 2 -> 1 -> 3 -> 6 -> 5 -> null reverse(list...

    DesGemini 評論0 收藏0
  • LeetCode 之 JavaScript 解答第206題 —— 反轉(zhuǎn)鏈表Reverse Link

    摘要:算法思路兩種方法一般反轉(zhuǎn)遞歸法一般解決定義三個指針,分別為,存儲當前結點,指向反轉(zhuǎn)好的結點的頭結點,存儲下一結點信息。遞歸法重點分析先確定終止條件當下一結點為時,返回當前節(jié)點判斷當前的鏈表是否為遞歸找到尾結點,將其存儲為頭結點。 Time:2019/4/23Title: Reverse Linked ListDifficulty: EasyAuthor: 小鹿 題目:Reverse...

    zhangfaliang 評論0 收藏0
  • LeetCode 攻略 - 2019 年 7 月下半月匯總(100 題攻略)

    摘要:月下半旬攻略道題,目前已攻略題。目前簡單難度攻略已經(jīng)到題,所以后面會調(diào)整自己,在刷算法與數(shù)據(jù)結構的同時,攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚有什么區(qū)別...

    tain335 評論0 收藏0

發(fā)表評論

0條評論

only_do

|高級講師

TA的文章

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