国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

實(shí)現(xiàn)鏈表反轉(zhuǎn),你學(xué)會(huì)了嗎?

開發(fā) 前端
經(jīng)過數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)的學(xué)習(xí),我們知道鏈表中每個(gè)節(jié)點(diǎn)都會(huì)有一個(gè)指針,用于指向它的下一個(gè)節(jié)點(diǎn),那么,我們只需要從鏈表頭部開始遍歷,逐一修改它的指針指向至其上一個(gè)節(jié)點(diǎn),即可完成鏈表的反轉(zhuǎn)。

前言

有一個(gè)鏈表,如何將其反轉(zhuǎn)并獲取反轉(zhuǎn)后的鏈表頭節(jié)點(diǎn)?本文將分享一種解決方案,歡迎各位感興趣的開發(fā)者閱讀本文。

思路分析

經(jīng)過數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)的學(xué)習(xí),我們知道鏈表中每個(gè)節(jié)點(diǎn)都會(huì)有一個(gè)指針,用于指向它的下一個(gè)節(jié)點(diǎn),那么,我們只需要從鏈表頭部開始遍歷,逐一修改它的指針指向至其上一個(gè)節(jié)點(diǎn),即可完成鏈表的反轉(zhuǎn)。

這個(gè)思路的難點(diǎn)在于如何調(diào)整指針的指向,我們可以借助3個(gè)指針來完成這個(gè)操作,如下所示:

  • p1、p3分別是p2指針的上、下一個(gè)節(jié)點(diǎn)(默認(rèn)指向null)
  • 如果p2指針指向的節(jié)點(diǎn)不為null

獲取p2指針指向的下一個(gè)節(jié)點(diǎn),將其保存至p3

如果p3的值為null,則表示鏈表已經(jīng)反轉(zhuǎn)完畢,用一個(gè)變量存儲(chǔ)p2的值

修改p2指針的指向至p1,修改p1的值為p2,修改p2的值為p3

圖片

實(shí)現(xiàn)代碼

通過上面的分析,我們分析出了可以用三指針來解決問題的思路,接下來,我們來看下代碼實(shí)現(xiàn)。

首先,設(shè)計(jì)一個(gè)名為ReverseLinkedList的類:

  • 內(nèi)部有2個(gè)私有變量。

pPrev p1指針

pNode p2指針

  • 構(gòu)造方法接受1個(gè)參數(shù):鏈表頭節(jié)點(diǎn)。

對(duì)參數(shù)進(jìn)行校驗(yàn)。

初始化p2指針指向?yàn)殒湵眍^節(jié)點(diǎn),p1指針的指向?yàn)閚ull。

export class ReverseLinkedList {
// p1指針
private pPrev: ListNode | null;
// p2指針
private pNode: ListNode | null;

constructor(listHead: ListNode) {
if (listHead == null) {
throw new Error("鏈表頭節(jié)點(diǎn)不能為空");
}
this.pNode = listHead;
this.pPrev = null;
}
}

上述代碼中,我們用了一個(gè)自定義類型ListNode,它描述了一個(gè)鏈表的節(jié)點(diǎn)應(yīng)該包含哪些屬性,對(duì)此感興趣的開發(fā)者請(qǐng)移步我的另一篇文章:鏈表與變相鏈表的實(shí)現(xiàn)。

緊接著,實(shí)現(xiàn)鏈表反轉(zhuǎn)函數(shù):

  • 聲明一個(gè)變量用于存儲(chǔ)反轉(zhuǎn)后的鏈表頭指針。
  • 移動(dòng)p2指針,開始遍歷鏈表。

存儲(chǔ)p2指針的下一個(gè)節(jié)點(diǎn)至p3。

判斷p2指針是否為走到鏈表末尾,條件成立就修改存儲(chǔ)p2節(jié)點(diǎn)至反轉(zhuǎn)后的鏈表頭指針變量。

修改p2指針的指向至p1,修改p1的值為p2,修改p2的值為p3。

  • p2指針指向null,返回得到的鏈表頭節(jié)點(diǎn)。
  reverseList(): ListNode | null {
// 反轉(zhuǎn)后的鏈表頭指針
let pReversedHead: ListNode | null = null;
while (this.pNode != null) {
// p3指針
const pNext = this.pNode.next;
if (pNext == null) {
pReversedHead = this.pNode;
}
this.pNode.next = this.pPrev;
this.pPrev = this.pNode;
this.pNode = pNext;
}
return pReversedHead;
}

完整代碼請(qǐng)移步:ReverseLinkedList.ts

測(cè)試用例

接下來,我們將前言中的例子代入上個(gè)章節(jié)所實(shí)現(xiàn)的函數(shù)中,驗(yàn)證下它能否得出正確的結(jié)果。

const linkedList = new LinkedList();
linkedList.push(1);
linkedList.push(3);
linkedList.push(8);
linkedList.push(9);
linkedList.push(12);
linkedList.push(18);
const reverseLinkedList = new ReverseLinkedList(linkedList.getHead());
const result = reverseLinkedList.reverseList();
console.log("反轉(zhuǎn)后的鏈表頭節(jié)點(diǎn)為", result);

運(yùn)行結(jié)果如下所示,成功的解決了文章前言中所講的問題。

圖片

完整代碼請(qǐng)移步:reverseLinkedList-test.ts

示例代碼:

本文所列舉的代碼,其完整版請(qǐng)移步??:

  • ReverseLinkedList.ts
  • reverseLinkedList-test.ts
責(zé)任編輯:武曉燕 來源: 神奇的程序員
相關(guān)推薦

2024-07-29 10:35:44

KubernetesCSI存儲(chǔ)

2024-01-19 08:25:38

死鎖Java通信

2024-02-04 00:00:00

Effect數(shù)據(jù)組件

2023-07-26 13:11:21

ChatGPT平臺(tái)工具

2023-01-10 08:43:15

定義DDD架構(gòu)

2025-09-03 04:11:00

2023-08-01 12:51:18

WebGPT機(jī)器學(xué)習(xí)模型

2024-01-02 12:05:26

Java并發(fā)編程

2023-10-10 11:04:11

Rust難點(diǎn)內(nèi)存

2024-07-31 08:39:45

Git命令暫存區(qū)

2024-05-06 00:00:00

InnoDBView隔離

2023-12-12 08:02:10

2023-01-30 09:01:54

圖表指南圖形化

2022-07-08 09:27:48

CSSIFC模型

2024-08-06 09:47:57

2024-08-12 08:12:38

2024-03-12 08:37:32

asyncawaitJavaScript

2023-12-07 12:29:49

Nginx負(fù)載均衡策略

2024-11-28 10:32:32

2024-08-30 14:34:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

少妇人妻在线视频| 在线播放成人| 午夜精品久久久久久久久久| 日韩美女视频中文字幕| 天天做天天爱天天高潮| gogo久久日韩裸体艺术| 欧美揉bbbbb揉bbbbb| 欧美日韩激情视频在线观看| 极品中文字幕一区| 欧美黄色片免费观看| √天堂8资源中文在线| 一区二区三区精密机械公司| 亚洲午夜精品久久| 日韩一区二区三区免费播放| 天天夜碰日日摸日日澡性色av| 日日夜夜天天综合| 99精品视频精品精品视频 | 天天做天天爱天天综合网| 日韩一二三四区| 国产成人精品免费网站| 欧美性做爰毛片| 亚洲日本va在线观看| 99久re热视频精品98| 在线亚洲国产精品网| 毛片av在线| 日韩av大片| 久久精品国产96久久久香蕉| 在线观看污网站| 久久亚洲精精品中文字幕早川悠里| 精品国产一区二区三区免费| 精品国产视频| 欧美剧在线观看| 电影一区电影二区| 精品成人一区二区三区| 麻豆免费在线视频| 欧美在线不卡一区| 污视频网站在线免费观看| 国产精品乱人伦| 欧美日韩一区二区在线免费观看 | 欧美激情区在线播放| 亚洲一区二区电影| 成熟亚洲日本毛茸茸凸凹| 97se国产在线视频| 亚洲91视频| 成人免费观看a| 第一会所亚洲原创| 国产精品99一区| 九九亚洲视频| 国产精品久久久精品| 免费精品国产的网站免费观看| 性色av一区二区三区红粉影视| 精品三级久久久| 欧美老妇交乱视频| 爱高潮www亚洲精品| 欧美激情网站在线观看| 久久综合五月婷婷| 青青a在线精品免费观看| 羞羞色国产精品网站| 国产精品99久久久久久久久 | 国内精品久久久久伊人av| 精品精品视频| 91精品国产91久久久久久不卡| 无码日韩精品一区二区免费| 日韩av色在线| 国产精品成人av| 黄色91av| 国产精品一区二区免费不卡| 青春草国产视频| 国产精品蜜臀av| 青青操在线视频| 4438x成人网最大色成网站| 丝袜在线视频| 国产色综合网| 日本韩国精品在线| 欧美色图天堂| 国产一区二区三区丝袜| 国产精久久久| 国产精品一二三在线| 国产视频一区三区| 警花观音坐莲激情销魂小说| 久久综合999| 天堂在线视频| 欧美精品一区二区三区一线天视频| 日韩精选视频| 国产精品电影在线观看| 国产模特精品视频久久久久| 欧美狂野激情性xxxx在线观| 亚洲欧美一区二区三区国产精品| 国产福利免费在线观看| 亚洲桃花岛网站| 欧美理论电影大全| 日韩经典在线视频| 国产欧美日本一区视频| 亚洲网友自拍| 在线观看中文字幕亚洲| av亚洲在线观看| 亚洲精品一区二区三| 一区在线播放视频| 好看的中文字幕在线播放| 欧美日本啪啪无遮挡网站| 欧美a级成人淫片免费看| 在线精品日韩| 亚洲一区二区欧美激情| 欧美另类老肥妇| 国产精品免费一区| 丰满少妇久久久久久久| 草莓污污视频在线观看| 亚洲另类欧美自拍| 一区二区三区毛片免费| 91午夜在线观看| 在线免费不卡视频| 精品视频在线观看免费观看| 九色综合日本| 一区二区久久久| 欧美成人精品三级网站| 国产精品久久精品视| 国产日本欧美一区二区| 波多野结衣精品| 亚洲精品欧美一区二区三区| 99久久综合国产精品| 国产秀色在线www免费观看| 97**国产露脸精品国产| 国产91精品一区二区麻豆亚洲| 男人的天堂在线视频| 九九热在线精品视频| 精品午夜久久福利影院| 中文字幕第一区二区| 国产夫妻在线| 国产99视频精品免费视频36| 中文字幕成人av| 蜜桃视频成人m3u8| 久久综合九九| 欧美视频专区一二在线观看| 亚洲精品在线a| 国产在线视频在线| 欧美一区二区网站| 午夜精彩国产免费不卡不顿大片| 国产精品午夜春色av| 午夜视频国产| 日韩精品一二三四区| 亚洲字幕久久| www.97.| 色悠悠久久88| 麻豆精品久久精品色综合| 你懂的在线视频| 国产精品黄视频| 中文字幕在线不卡国产视频| av中文字幕在线播放| 综合欧美亚洲日本| 精品日韩在线播放| 7777精品伊人久久久大香线蕉| 成人影视亚洲图片在线| 超碰色偷偷男人的天堂| 欧美极品少妇xxxxx| av不卡在线播放| 在线观看欧美日韩电影| 91免费观看国产| 不卡在线一区二区| 老司机久久99久久精品播放免费| 久久爱.com| 国产有码在线| 女人和拘做爰正片视频| 国产成人在线一区| 精品国产区一区| 日本在线丨区| 97精品在线视频| 日本精品一区二区| 狠狠躁18三区二区一区| 日韩成人免费| 国产视频网址在线| 麻豆精品视频| 日韩风俗一区 二区| 国产成人自拍网| 国产一区二区黑人欧美xxxx| 国产亚洲欧美日韩美女| 性欧美办公室18xxxxhd| 国产成人高清视频| 在线高清欧美| 成人免费观看www在线| 日韩av电影中文字幕| 欧美日韩免费在线观看| 亚洲免费黄色| 日韩伦理三区| 亚洲高清在线免费观看| 久久综合欧美| 欧美在线不卡| 日韩一区二区三区免费看| 伊人久久婷婷| www.超碰在线| 国产熟女高潮视频| 国产精品久久久久久婷婷天堂| 色哟哟一区二区三区| 日韩精品电影一区亚洲| 欧美国产大片| 麻豆一区二区三区视频| 国产在线精品成人一区二区三区| 91精品欧美综合在线观看最新| 国产精品123区| 九九在线高清精品视频| 久久综合网导航|