精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

二叉搜索樹與雙向鏈表

開發(fā) 前端
在二叉樹中,每個節(jié)點都有兩個指向子節(jié)點的指針。在雙向鏈表中,每個節(jié)點也有兩個指針,分別指向前一個節(jié)點和后一個節(jié)點。這兩種節(jié)點的結構很相似,二叉搜索樹是一種排序的數(shù)據(jù)結構,它的左子節(jié)點的值總是小于父節(jié)點的值,右子節(jié)點的值總是大于父節(jié)點的值。

前言

有一顆二叉搜索樹,在不創(chuàng)建任何新節(jié)點的條件下,如何將它轉換成一個排序的雙向鏈表?本文就跟大家分享下這個算法,歡迎各位感興趣的開發(fā)者閱讀本文。

思路分析

在二叉樹中,每個節(jié)點都有兩個指向子節(jié)點的指針。在雙向鏈表中,每個節(jié)點也有兩個指針,分別指向前一個節(jié)點和后一個節(jié)點。這兩種節(jié)點的結構很相似,二叉搜索樹是一種排序的數(shù)據(jù)結構,它的左子節(jié)點的值總是小于父節(jié)點的值,右子節(jié)點的值總是大于父節(jié)點的值。

那么,我們在將二叉搜索樹轉換為排序雙向鏈表時:

  • 原先指向左子節(jié)點的指針,調(diào)整為鏈表中指向前一個節(jié)點的指針。
  • 原先指向右子節(jié)點的指針,調(diào)整為鏈表中指向后一個節(jié)點的指針。

如何轉換

接下來,我們考慮下如何進行轉換。由于轉換后的鏈表是排好序的,我們可以中序遍歷樹中的每個節(jié)點,因為我們在文章實現(xiàn)二叉搜索樹-中序遍歷中,總結出了它的特點是按照從小到大的順序訪問每個節(jié)點。

我們用一個具體的例子來做進一步的分析,當我們執(zhí)行中序遍歷到根節(jié)點的時候,就可以把樹看成3部分(如下圖所示):

  • 值為10的節(jié)點
  • 根節(jié)點值為6的左子樹
  • 根節(jié)點值為14的右子樹

圖片

根據(jù)排序鏈表的定義,值為10的節(jié)點將和它的左子樹中的最大節(jié)點(值為8的節(jié)點)鏈接起來,同時它還將和右子樹中最小的節(jié)點(值為12的節(jié)點)鏈接起來,如下圖所示,將其拆成了根節(jié)點、左、右子樹,我們把左子樹與右子樹都轉換成雙向鏈表之后再和根節(jié)點鏈接起來,整顆二叉搜索樹也就轉成了排序雙向鏈表。

圖片

總結思路

按照中序遍歷的順序,當我們遍歷轉換到根節(jié)點(值為10的節(jié)點)時,它的左子樹已經(jīng)轉換成一個排序的鏈表了,并且處在鏈表中的最后一個節(jié)點時當前值最大的節(jié)點。我們把值為8的節(jié)點和根節(jié)點鏈接起來,此時鏈表中的最后一個節(jié)點就是10了。接著我們?nèi)ケ闅v轉換右子樹,并把根節(jié)點和右子樹中最小的節(jié)點鏈接起來。

分析到這里,相信大家已經(jīng)看出了左、右子樹節(jié)點轉換的過程跟遍歷的過程是一樣的,因此我們可以用遞歸來解決問題。

  • 將左子樹構造成雙鏈表,并返回頭節(jié)點
  • 定位至左子樹雙鏈表最后一個節(jié)點
  • 如果左子樹鏈表不為空的話,將當前根節(jié)點追加到左子樹鏈表
  • 將右子樹構造成雙鏈表,并返回頭節(jié)點
  • 如果右子樹鏈表不為空的話,將該鏈表追加到root節(jié)點之后
  • 根據(jù)左子樹鏈表是否為空確定返回的節(jié)點

實現(xiàn)代碼

思路捋清之后,接下來我們看下代碼的實現(xiàn)。

export function treeToLinkedList(
root: BinaryTreeNode | null | undefined
): BinaryTreeNode | null {
if (root == null) return null;
if (root.left == null && root.right == null) return root;
// 將左子樹構造成雙鏈表,返回鏈表的頭節(jié)點
const leftTree = treeToLinkedList(root.left);
// 遍歷左子樹雙鏈表,找到它右子樹的最后一個節(jié)點
let pNode = leftTree;
while (pNode != null && pNode.right != null) {
pNode = pNode.right;
}
// 最后一個節(jié)點存在,則將兩個節(jié)點相互連接起來
if (pNode) {
// 將其右子樹與根節(jié)點連接
pNode.right = root;
// 將根節(jié)點的左子樹與其連接
root.left = pNode;
}
// 將右子樹構造成雙鏈表,返回鏈表的頭節(jié)點
const rightTree = treeToLinkedList(root.right);
// 右子樹鏈表不為空,則將該鏈表追加到root節(jié)點之后
if (rightTree != null) {
rightTree.left = root;
root.right = rightTree;
}
return leftTree != null ? leftTree : root;
}
測試用例

我們用文章中所列舉的例子來校驗下上述代碼能否正確解決問題。

const tree: BinaryTreeNode = {
key: 10,
left: {
key: 6,
left: {
key: 4
},
right: {
key: 8
}
},
right: {
key: 14,
left: {
key: 12
},
right: {
key: 16
}
}
};

const linkedListResult = treeToLinkedList(tree);
console.log(linkedListResult);

執(zhí)行結果如下所示,正確的將樹左右指針所指向的節(jié)點進行了更改。

圖片

image-20221222165006886

圖片

示例代碼

本文用到的代碼完整版請移步:

  • BinaryTreeToDoublyLinkedList.ts
  • binaryTreeToDoublyLinkedList-test.ts
責任編輯:武曉燕 來源: 神奇的程序員
相關推薦

2021-12-07 06:55:17

二叉搜索樹鏈表

2020-09-23 18:25:40

算法二叉樹多叉樹

2021-08-31 11:35:24

二叉搜索樹迭代法公共祖先

2021-09-02 11:31:28

二叉搜索樹迭代法公共祖先

2022-01-11 10:01:25

二叉搜索樹數(shù)量

2023-07-31 08:01:13

二叉搜索測試

2021-09-03 08:58:00

二叉搜索樹節(jié)點

2020-04-27 07:05:58

二叉樹左子樹右子樹

2023-02-13 08:02:08

哈希函數(shù)哈希表搜索樹

2021-09-07 11:01:41

二叉搜索樹序數(shù)組

2024-01-17 07:36:50

二叉搜索聯(lián)系簿

2021-08-26 11:31:11

二叉樹數(shù)據(jù)結構算法

2021-04-06 08:20:24

二叉搜索樹數(shù)據(jù)結構算法

2021-10-11 06:38:52

遞歸二叉搜索樹

2021-09-06 10:38:50

二叉搜索樹遞歸

2020-10-11 16:56:48

二叉搜索樹代碼開發(fā)

2023-08-29 08:31:13

B+樹數(shù)據(jù)索引

2021-04-19 07:47:42

數(shù)據(jù)結構二叉樹Tree

2021-04-20 08:37:14

數(shù)據(jù)結構二叉樹

2021-03-17 08:19:22

二叉樹LeetCode
點贊
收藏

51CTO技術棧公眾號

91av福利视频| 欧美三日本三级三级在线播放| 俄罗斯精品一区二区三区| 麻豆视频在线观看| 免费观看成人www动漫视频| 亚洲国产精品一区二区www| 亚洲高清在线视频| 91chinesevideo永久地址| 99久久精品免费视频| 日日夜夜亚洲精品| 亚洲国产视频直播| 奇米精品在线| 国产丝袜在线视频| 99av国产精品欲麻豆| 国产亚洲欧美一区| 91人妻一区二区三区| 涩涩涩在线视频| 中文字幕一区二区三区蜜月| 亚洲精品免费一区二区三区| 天天干天天干天天操| 99精品电影| 亚洲精品一区中文字幕乱码| 日韩视频在线观看一区二区三区| 国产伦理精品| 亚洲人午夜精品天堂一二香蕉| 久久久亚洲综合网站| 国产aⅴ爽av久久久久成人| 亚洲一区二区三区免费在线观看| 久久精品99国产精品酒店日本| a级一a一级在线观看| 78精品国产综合久久香蕉| 亚洲国产毛片aaaaa无费看| 亚洲视频在线二区| 你懂的在线观看视频网站| 国产成人三级在线观看| 国产精品美女主播在线观看纯欲| 精品无码人妻一区二区三区品 | 不卡在线一区| 精品sm在线观看| 国产91在线视频观看| 色网站在线看| 久久久精品免费观看| 超碰97国产在线| 国产亲伦免费视频播放| 久久综合之合合综合久久| 狠狠色狠狠色综合日日91app| 奇米一区二区三区四区久久| 久久久精品人妻一区二区三区四| 亚洲国产精品日韩专区av有中文| 国产亚洲视频在线观看| 亚洲永久精品ww.7491进入| 久久久久97| 精品福利视频一区二区三区| 丰满少妇中文字幕| 精品国产一区二区三区2021| 欧美日韩免费视频| 成人在线观看a| 少妇视频一区| 狠狠做深爱婷婷久久综合一区 | 黄色av电影在线观看| 国产欧美日韩在线看| 日韩高清国产精品| h网站在线免费观看| 国产日产欧美一区| 国产无套精品一区二区| 视频二区在线观看| av一区二区三区| 玛丽玛丽电影原版免费观看1977 | 美女毛片在线观看| 欧美成人一品| 久久久亚洲精品视频| 日产精品久久久久| 在线看片一区| 欧洲日本亚洲国产区| 中文字幕免费观看| 老司机午夜免费精品视频| 亚洲色图插插| 欧美三级欧美一级| 一区二区三区 日韩| 99国产精品免费| 91欧美极品| 亚洲国产91精品在线观看| 制服丝袜第一页在线观看| 国产区精品视频在线观看豆花| 亚洲国产精品悠悠久久琪琪 | 精品国产免费人成网站| 欧美日韩亚洲高清| caopor在线视频| 国产成人精品一区二区三区在线| 制服丝袜中文字幕亚洲| 久久久久久婷婷| 蜜桃国内精品久久久久软件9| 在线看日韩av| 国产亚洲小视频| 日本午夜精品一区二区三区电影| 91性高湖久久久久久久久_久久99| 国产成人三级在线观看视频| 国产午夜亚洲精品理论片色戒| 日本黄色播放器| 欧美激情20| 欧美色图免费看| 日本黄色动态图| 久久一区二区中文字幕| 成年人精品视频| 久久久蜜桃一区二区| 国产裸体歌舞团一区二区| 成人黄色午夜影院| 三区在线观看| 亚洲精品成人少妇| 欧美精品成人网| 99久久婷婷国产综合精品青牛牛| 国产午夜精品视频免费不卡69堂| 激情五月婷婷在线| 精品在线免费视频| 欧美日韩一区在线观看视频| 成人在线高清免费| 6080午夜不卡| 亚洲天堂岛国片| 99亚洲视频| 动漫精品视频| 岛国成人毛片| 制服丝袜国产精品| 特黄一区二区三区| 天堂蜜桃91精品| 久久99精品久久久水蜜桃| 欧美黑人猛交的在线视频| 欧美日韩高清在线播放| 成人激情五月天| 新狼窝色av性久久久久久| 懂色av一区二区三区在线播放| 免费av在线网站| 欧洲在线/亚洲| 极品粉嫩小仙女高潮喷水久久| 影音先锋在线一区| 97人人模人人爽人人少妇| 国产原创在线观看| 欧美精品高清视频| 日本不卡一二区| 麻豆精品国产传媒mv男同| 日产精品一线二线三线芒果| 久久精品女人天堂av免费观看| 亚洲毛片在线看| av一级在线观看| 久久久久国产免费免费 | 91在线播放观看| 麻豆freexxxx性91精品| 一本久久a久久精品vr综合| 69堂免费精品视频在线播放| 亚洲色图狂野欧美| 最新中文字幕免费| 国产精品剧情在线亚洲| 在线免费观看av的网站| 日韩成人精品一区| 国产日韩一区在线| 成人短视频在线观看| 日韩一级完整毛片| 伊人国产在线观看| 9人人澡人人爽人人精品| 凹凸国产熟女精品视频| 免费精品国产| 国产精品嫩草影院一区二区| 在线视频婷婷| 日韩无一区二区| 久久国产精品波多野结衣av| 成人黄色在线视频| 国产性xxxx18免费观看视频| 日本a口亚洲| 91沈先生在线观看| 欧美人与牲禽动交com| 精品国产91九色蝌蚪| 日本在线播放视频| 国产欧美日本一区视频| 肉色超薄丝袜脚交| 日韩视频精品在线观看| 五月天婷亚洲天综合网鲁鲁鲁| 亚洲美女色播| 欧美高跟鞋交xxxxhd| 天堂中文在线观看视频| 日本福利一区二区| 91杏吧porn蝌蚪| www.在线欧美| 色噜噜狠狠永久免费| 欧美日韩精品免费观看视频完整| 久久国产精品一区二区三区| 黄色成人在线观看网站| 欧美高清自拍一区| 免费理论片在线观看播放老| 51精品秘密在线观看| 日韩精品在线免费看| 国产拍揄自揄精品视频麻豆 | 久久综合色天天久久综合图片| 91福利国产成人精品播放| 亚洲一级二级| 视频一区二区三区在线观看| 亚洲免费一区三区| 国产精品国语对白| 免费在线观看的电影网站| 亚洲日韩欧美视频一区| 亚洲成人一二三区| 欧洲生活片亚洲生活在线观看| 久久99久久98精品免观看软件| 国产欧美精品区一区二区三区| 佐佐木明希电影| 蜜桃视频一区二区| 欧美亚洲日本一区二区三区| 999国产精品| 欧美日韩一区二区三区在线视频| 日韩精品亚洲专区在线观看| 国产精品成人v| 国产在线观看www| 欧美成人午夜免费视在线看片| 九色视频在线观看免费播放| 欧美va亚洲va香蕉在线| 在线免费一级片| 欧美性猛交xxxxx水多| 日韩一区二区三区四区在线| 国产日韩欧美麻豆| 在线免费观看污视频| 国产高清成人在线| 一本一道久久a久久综合蜜桃| 快she精品国产999| 日韩免费一级视频| 亚洲性感美女99在线| av中文字幕av| 国产精品成人一区二区不卡| 婷婷五月色综合| 精品视频免费在线观看| 欧美二级三级| 天天久久夜夜| 久久久久资源| 九九综合久久| 欧美三级华人主播| 国产精品羞羞答答在线观看| 鲁片一区二区三区| 亚洲人成网亚洲欧洲无码| 精品无码久久久久国产| 久久99国产精品久久99大师| 国产亚洲精品美女久久久m| 91精品短视频| 国产亚洲情侣一区二区无| 国产精品99久久免费观看| 国产 高清 精品 在线 a| 哺乳一区二区三区中文视频| 国产精品一 二 三| 久9re热视频这里只有精品| 国产精品美女诱惑| 欧美日韩一区二区三区四区不卡| 久久99精品久久久久久久久久| 欧美人妖在线观看| 欧美高清性xxxxhd| 日韩精品1区| 懂色av一区二区三区四区五区| 亚洲欧美在线专区| 亚洲精品国产suv一区88| 亚洲成人直播| 日本黄色三级大片| 蜜臀av性久久久久av蜜臀妖精| 日本不卡一区二区在线观看| 国产美女主播视频一区| 国产综合内射日韩久| 91在线高清观看| 免费看黄色三级| 日韩毛片一二三区| 正在播放亚洲| 日本视频www| 久久久久九九视频| 亚洲图片第一页| 亚洲男人天堂av网| 日韩精品一区二区av| 色综合久久久久| 亚洲图片在线播放| 欧美va在线播放| 欧美色综合一区二区三区| 日本精品在线| 亚洲精品理论电影| 欧美性猛交 xxxx| 亚洲人成在线观| a级影片在线观看| 欧美黄色三级网站| 92国产精品| 91久久精品国产| 免费观看性欧美大片无片| 国产伦精品一区二区三区视频免费| 日韩高清影视在线观看| 欧美精品七区| 亚洲成人精品| 天堂…中文在线最新版在线| 久久国产精品久久久久久电车| 五月婷婷丁香色| 成人福利电影精品一区二区在线观看| 亚洲av无码一区二区二三区| 中文字幕日韩欧美一区二区三区| 婷婷丁香综合网| 亚洲天堂成人网| 国产91网红主播在线观看| 可以在线观看的av网站| 久久这里有精品| 精品一性一色一乱农村| 日韩免费不卡av| 豆花视频一区二区| 日韩免费av一区二区三区| 亚洲国产日本| 日本在线观看视频一区| 99久久免费精品| www.色小姐com| 欧美日韩1234| 人妻精品一区二区三区| 久久久国产一区二区| 成人日韩精品| 国产伦精品一区二区三区视频黑人 | 国产麻豆精品久久| 97干在线视频| 老妇喷水一区二区三区| 在线看黄色的网站| 亚洲欧美日韩国产综合| 男人的天堂一区| 91精品国产综合久久香蕉麻豆| 免费在线一级视频| 欧美激情亚洲激情| 狂野欧美xxxx韩国少妇| 亚洲午夜高清视频| 麻豆九一精品爱看视频在线观看免费| 美国黄色一级视频| 一区二区三区欧美日韩| 波多野结衣电影在线播放| 日韩电影中文字幕| 高潮在线视频| 亚洲最大福利视频| 中文无码久久精品| 免费网站在线观看黄| 国产午夜精品一区二区三区四区| 成人一级黄色大片| 在线亚洲免费视频| 男男电影完整版在线观看| 欧美壮男野外gaytube| 欧美xxxx黑人又粗又长| 亚洲欧洲综合另类在线| 九九视频在线免费观看| 欧美日韩一区二区电影| 国产大学生校花援交在线播放 | 美美哒免费高清在线观看视频一区二区 | 国产精品日韩一区二区 | 久久久久亚洲蜜桃| 国产成人在线综合| 国产精品情趣视频| 中文资源在线播放| 日韩在线免费视频观看| 亚洲精品大全| 免费毛片一区二区三区久久久| 久久国产精品亚洲77777| 亚洲精品乱码久久久久久久久久久久| 伊人色综合久久天天| www.五月婷| 91精品国产99| 日韩高清影视在线观看| 久久精品99国产| 国产精品毛片a∨一区二区三区| 69视频免费看| 日韩有码片在线观看| 精品国产亚洲一区二区在线观看 | av中文字幕一区二区| 日韩精品一区中文字幕| 国产欧美一区二区精品婷婷| 一级做a爰片久久毛片16| 欧美猛少妇色xxxxx| 麻豆精品一区| 丰满爆乳一区二区三区| 欧美激情综合在线| 国产乱码精品一区二三区蜜臂 | 欧美精品一区男女天堂| 国产资源在线观看入口av| 日产精品一线二线三线芒果| 奇米精品一区二区三区四区| 久久人妻无码aⅴ毛片a片app| 欧美成人精品1314www| www.51av欧美视频| 亚洲狠狠婷婷综合久久久| 韩国av一区二区三区| 久久久久久久福利| 国产亚洲在线播放| 日韩在线观看中文字幕| a级免费在线观看| 久久久久久久久久久久久女国产乱| 97人妻精品一区二区三区视频 | 免费欧美在线| 成人动漫视频在线观看免费| 欧美在线高清| 亚洲图片 自拍偷拍| 色综合久久综合中文综合网| 黄色视屏免费在线观看| 精品999在线观看| 另类调教123区| 久热这里只有精品6| 日韩有码在线电影| 高清精品视频| 91网址在线观看精品| 色国产综合视频| а√天堂资源地址在线下载| 日本在线播放不卡| 粉嫩欧美一区二区三区高清影视 |