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

二叉樹中和為某一值的路徑

開發 前端
按照前序遍歷的順序去訪問這顆二叉樹,在訪問節點10之后,就會訪問節點5。圖中二叉樹并沒有指向父節點的指針,當訪問節點5的時候,我們是不知道前面經過了哪些節點的,此時我們就需要準備一個棧,用來存儲訪問過的節點。

思路分析

我們舉例來做分析,如下圖所示,我們準備了一顆二叉樹和一個整數22,通過觀察后,我們很容易就能看出它有兩條路徑的節點值加起來和為22。

  • 10、5、7
  • 10、12

圖片

上述兩個路徑都是從根節點出發到葉子節點的,也就是說路徑總是以根節點為起始點,因此我們首先需要遍歷根節點。在樹的三種遍歷方式中,只有前序遍歷是首先訪問根節點的。

按照前序遍歷的順序去訪問這顆二叉樹,在訪問節點10之后,就會訪問節點5。圖中二叉樹并沒有指向父節點的指針,當訪問節點5的時候,我們是不知道前面經過了哪些節點的,此時我們就需要準備一個棧,用來存儲訪問過的節點。

當到達節點5的時候,路徑中包含兩個節點:10、5。接下來遍歷到節點4,我們把這個節點入棧,這時候已經到達葉節點,但棧中的所有節點之和是19。這個和不等于輸入的值22,因此它不符合要求的路徑。

最后,我們要遍歷的節點是12。在遍歷這個節點之前,需要先經過節點5回到節點10。同樣的,每次當從子節點回到父節點的時候,我們都需要在路徑上刪除子節點。最后在節點10到達節點12的時候,路徑上的兩個節點的值之和也是22,因此這也是一條符合要求的路徑。

  • 分析到這里,我們就找到了一些規律:
  • 當用前序遍歷的方式訪問到某一節點時,就把該節點添加到路徑上,并累加該節點的值
  • 如果該節點為葉節點,并且路徑中節點值的和剛好等于輸入的整數,則當前路徑符合要求
  • 如果該節點非葉節點,則繼續訪問它的子節點。從節點路徑棧中刪除當前節點

遞歸上述過程,直至二叉樹的所有節點訪問完畢。

圖片

實現代碼

形成了清晰的思路之后,接下來我們就可以輕松的寫出代碼了,如下所示:

  • 聲明需要的變量:已訪問過的路徑棧、滿足預期的路徑數組、當前已訪問節點的值總和
  • 從root節點開始,用前序遍歷訪問所有節點,篩選并存儲滿足預期條件的路徑
  findPath(root: Node<number>, expectedSum: number): Array<string> {
if (root == null) return [];

// 用一個棧來存儲訪問過的路徑
const pathStack = new Stack();
// 存儲符合條件的路徑
const pathList: Array<string> = [];
// 當前已訪問路徑總和
const currentSum = 0;
// 從root節點開始搜索節點
this.searchNode(root, expectedSum, pathStack, currentSum, pathList);
return pathList;
}
  • 取出根節點的值,將其進行累加
  • 累加后,將根節點的值壓入路徑棧中
  • 判斷是否訪問到了葉節點,如果為葉節點且當前已訪問的節點路徑總和等于預期條件則將路徑棧中的路徑放入符合條件的路徑數組中
  • 當前節點非葉節點,則繼續遞歸訪問它的左、右子樹
  • 左、右子樹都訪問完成后,則代表當前路徑不滿足預期條件,將其從路徑棧中出棧
private searchNode(
root: Node<number>,
expectedSum: number,
pathStack: Stack,
currentSum: number,
pathList: Array<string>
) {
// 累加當前已訪問節點的和,將當前節點入棧
currentSum += root.key;
pathStack.push(root.key);

// 如果是葉節點,并且路徑上節點值的和等于輸入的值,則存儲當前路徑棧中的節點
const isLeaf = root.left == null && root.right == null;
if (currentSum == expectedSum && isLeaf) {
pathList.push(pathStack.toString());
}
// 非葉子節點,則遍歷它的子節點
if (root.left != null) {
this.searchNode(root.left, expectedSum, pathStack, currentSum, pathList);
}
if (root.right != null) {
this.searchNode(root.right, expectedSum, pathStack, currentSum, pathList);
}

// 當前節點不符合條件,將其出棧
pathStack.pop();
}

測試用例

接下來我們用文章開頭的例子來測試下上述代碼能否正確執行。

const tree: Node<number> = {
key: 10,
left: {
key: 5,
left: {
key: 4
},
right: {
key: 7
}
},
right: {
key: 12
}
};
const targetVal = 22;
const resultPath = treeOperateTest.findPath(tree, targetVal);
console.log(resultPath);

如下所示,成功得計算出了兩條路徑。

圖片

我們將節點12改成20,再來測試下,結果如下所示,只有一條路徑符合預期。

圖片

示例代碼

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

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

2021-12-05 18:25:12

二叉樹路徑節點

2020-04-27 07:05:58

二叉樹左子樹右子樹

2021-05-06 17:46:30

二叉樹數據結構

2021-04-19 07:47:42

數據結構二叉樹Tree

2021-04-20 08:37:14

數據結構二叉樹

2021-04-28 20:12:27

數據結構創建

2022-10-26 23:58:02

二叉樹數組算法

2021-11-29 10:40:58

二叉樹鏡像節點

2021-08-27 11:36:44

二叉樹回溯節點

2021-03-17 08:19:22

二叉樹LeetCode

2013-07-15 16:35:55

二叉樹迭代器

2021-09-29 10:19:00

算法平衡二叉樹

2021-12-17 14:26:58

二叉樹節點數量

2021-08-06 11:34:05

二叉樹遞歸回溯

2020-09-23 18:25:40

算法二叉樹多叉樹

2022-07-27 07:45:53

二叉樹鏡像函數

2018-03-15 08:31:57

二叉樹存儲結構

2021-10-12 09:25:11

二叉樹樹形結構

2021-09-15 07:56:32

二叉樹層次遍歷

2022-10-12 23:25:17

二叉樹父節點根節點
點贊
收藏

51CTO技術棧公眾號

欧美剧在线观看| 国产午夜一区二区三区| 亚洲日本欧美日韩高观看| 国产精品入口芒果| 国产黄色片网站| 亚洲国产91| 亚洲欧美日韩爽爽影院| 亚洲免费成人在线视频| 成人av影院在线观看| 成人av在线影院| 国产精品草莓在线免费观看| 国产三级黄色片| 亚洲影视资源| 欧美日韩在线观看视频| 精品久久蜜桃| 嫩草影院一区二区三区| 欧美成人嫩草网站| 亚洲国产精品久久久| 天天干天天操天天玩| 大菠萝精品导航| 日韩毛片高清在线播放| 国产一区免费| 91亚洲国产成人久久精品麻豆| 亚洲午夜伦理| 中文欧美在线视频| 偷偷色噜狠狠狠狠的777米奇| 国产精品高清乱码在线观看| 综合精品久久久| 日本一区视频在线播放| 黄色av一区二区三区| 久久成人免费电影| 欧美一级淫片播放口| 欧美成人黄色网| 婷婷激情综合| 最近中文字幕mv在线一区二区三区四区 | 少妇久久久久久被弄到高潮| 欧美日韩激情视频一区二区三区| 国产激情一区二区三区四区 | 精品国产亚洲一区二区三区在线| 亚洲中国最大av网站| 午夜在线视频免费观看| 国产毛片在线| 99精品一区二区| 91丨九色丨国产在线| 亚洲系列第一页| 亚洲欧美高清| 91成人在线观看国产| 日本一级黄色录像| 影音先锋中文字幕一区二区| 九九精品在线观看| 三级影片在线看| 你懂的亚洲视频| 欧美日韩国产999| 麻豆国产尤物av尤物在线观看| 国产精品成人a在线观看| 色视频www在线播放国产成人| 亚洲图片综合网| 性欧美lx╳lx╳| 精品一区二区电影| 在线观看免费视频黄| www.久久久.com| 日韩一区二区三区视频| 美女日批在线观看| 中文字幕一区图| 日韩欧美aaaaaa| 国产三级精品三级在线| 日本精品在线播放| 亚洲国产高清高潮精品美女| 欲求不满的岳中文字幕| 久久男人av| 亚洲欧美在线一区二区| 精品无码人妻一区二区免费蜜桃| 国产精品一区二区99| 亚洲视频在线视频| 婷婷激情四射网| 国产一区视频在线观看免费| 欧美激情亚洲综合一区| 国产一区二区三区影院| 香蕉久久a毛片| 国产精品欧美在线| 国产精品久久久久久免费| 国产精品资源在线观看| 亚洲在线观看视频| 精品区在线观看| 91在线视频免费91| 四虎永久国产精品| 日本中文字幕在线观看| 欧美高清在线视频| 91大学生片黄在线观看| 在线中文字幕第一页| 精品国产乱码久久久久久虫虫漫画| 无码播放一区二区三区| 中韩乱幕日产无线码一区| 91精品免费观看| 无码一区二区精品| 色琪琪久久se色| 久久久久久中文字幕| 久久人妻免费视频| 久久国产欧美日韩精品| 国产尤物91| 麻豆网站在线| 福利精品视频在线| 红桃视频一区二区三区免费| 亚洲素人在线| 欧美大片第1页| 色一情一乱一伦| 国产成人免费在线| 蜜桃视频日韩| 天堂аⅴ在线地址8| 亚洲成av人**亚洲成av**| 天天爽夜夜爽一区二区三区| 精品丝袜久久| 日韩视频第一页| 天堂网中文字幕| 精品一区二区综合| 免费看成人av| 欧美日韩在线资源| 日韩欧美国产高清91| 中国男女全黄大片| 久久一区二区中文字幕| 欧洲精品在线视频| 亚洲精品一区二区口爆| 日韩毛片精品高清免费| 国产精品拍拍拍| 亚洲国产合集| 欧美激情久久久久| 国产又粗又猛又爽又黄的| ww亚洲ww在线观看国产| 男人天堂手机在线视频| 91超碰碰碰碰久久久久久综合| 亚洲精品国产suv| 免费网站看av| 国产乱码精品一区二区三| 视频一区二区三区在线观看| 日韩欧美一中文字暮专区| 日韩色在线观看| 欧美手机在线观看| 精品一区二区三区久久| 亚洲国产欧美不卡在线观看| gogo亚洲高清大胆美女人体| 亚洲欧美色图片| 国产一级片视频| 国产suv精品一区二区三区| 少妇高潮大叫好爽喷水| 人人精品久久| 亚洲欧美精品一区二区| 一本一道无码中文字幕精品热| 国产精品亚洲专一区二区三区| 色中文字幕在线观看| 91精品亚洲一区在线观看| xxxxxxxxx欧美| 国产裸体永久免费无遮挡| 久久精品视频一区二区三区| 99久久激情视频| 精品国产一区二区三区小蝌蚪| 日韩av免费看| 北岛玲一区二区三区| 在线观看精品一区| 国产成人精品无码免费看夜聊软件| 久久蜜桃精品| 欧美日韩另类综合| 99热播精品免费| 久久久91精品| 国产精品视频一二区| 中文字幕一区二区三区在线播放 | 国产1区2区3区4区| 国产在线国偷精品免费看| 在线天堂一区av电影| 日韩经典一区| 欧美另类暴力丝袜| 天天色天天操天天射| 欧美性猛交99久久久久99按摩| 性猛交娇小69hd| 韩国欧美一区二区| 男女视频网站在线观看| 日韩精品福利一区二区三区| 国产精品成人va在线观看| 蜜桃免费在线| 91精品国产日韩91久久久久久| 久一区二区三区| 久久久久久综合| 欧美激情国内自拍| 妖精视频成人观看www| 日本一区二区三区免费看| 国产麻豆一区二区三区| 欧美日韩xxxxx| 国产最新视频在线观看| 制服丝袜亚洲精品中文字幕| 国产精品suv一区二区69| 91毛片在线观看| 男女啪啪网站视频| 欧美日韩岛国| 免费成人深夜夜行视频| 在线免费观看亚洲| **欧美日韩vr在线| 免费在线午夜视频| 日韩精品视频在线观看网址| 久久精品五月天| 亚洲香肠在线观看| wwwww黄色| 26uuu亚洲婷婷狠狠天堂| 免费成人黄色大片| 久久亚洲二区| 黄色a级片免费看| 欧洲grand老妇人| 国产区一区二区三区| 日韩av懂色| 日韩69视频在线观看| 美洲精品一卡2卡三卡4卡四卡| 在线丨暗呦小u女国产精品| 欧美熟妇另类久久久久久不卡| 在线看国产一区二区| 久久久国产成人| 国产日韩av一区二区| 久久久久成人精品无码中文字幕| 国产精品乡下勾搭老头1| 91人人澡人人爽人人精品| 亚洲国产日韩在线| 欧美美女黄色网| 不卡一区综合视频| 久久精品国产综合精品| 少妇一区视频| 欧美在线不卡区| av中文字幕在线观看第一页| 理论片在线不卡免费观看| jyzzz在线观看视频| 国产视频亚洲视频| 艳母动漫在线看| 日韩欧美你懂的| 国产模特av私拍大尺度| 欧美精品自拍偷拍动漫精品| 不卡av电影在线| 一本色道亚洲精品aⅴ| 黄色一级免费视频| 国产精品久久久久久久蜜臀| 一级黄色片网址| 国产日韩欧美麻豆| 亚洲人成人无码网www国产| 久久亚洲精华国产精华液| 亚洲一区二区三区综合| 国产成人av电影在线播放| 色偷偷中文字幕| 国产激情一区二区三区| 无码人妻一区二区三区免费n鬼沢 久久久无码人妻精品无码 | 不卡伊人av在线播放| 国产视频一区二区| 欧美成人精品在线视频| 老司机在线永久免费观看| 俺去了亚洲欧美日韩| 日韩免费网站| 久久精品国产免费观看| 尤物yw193can在线观看| 欧美黑人xxx| 欧美videossex另类| 久久久久久久激情视频| 97人人爽人人澡人人精品| 久久999免费视频| 最新国产在线拍揄自揄视频| www国产精品com| 在线三级电影| 国外成人在线直播| 国产经典三级在线| 97精品国产97久久久久久免费| 欧美gv在线观看| 国产精品第3页| 超碰国产精品一区二页| 亚洲一区二区自拍| 中文在线综合| 欧美日韩国产综合视频在线| 日韩理论在线| www.在线观看av| 亚洲片区在线| 黑人粗进入欧美aaaaa| 极品美女销魂一区二区三区免费| 国产成人av免费观看| 成人午夜视频网站| 在线观看日本中文字幕| 国产精品久久久久影院色老大| 亚洲综合视频网站| 无码av中文一区二区三区桃花岛| 男人天堂av在线播放| 欧美日韩国产在线播放网站| 91精品国自产| 亚洲第一精品久久忘忧草社区| 狠狠v欧美ⅴ日韩v亚洲v大胸| 日韩一区二区三区xxxx| 678在线观看视频| 国产精品私拍pans大尺度在线| 日本超碰一区二区| 日韩视频专区| 欧美一区二区三区久久精品茉莉花| 日本一区午夜艳熟免费| 日本不卡一二三区黄网| www.日本久久| jvid福利写真一区二区三区| 免费91在线观看| 国产精品精品国产色婷婷| 日本少妇bbwbbw精品| 欧美三级电影在线看| 人妻丰满熟妇av无码区hd| 最新亚洲国产精品| 日本aa在线| 成人免费视频a| 国产精品香蕉| 小说区视频区图片区| 视频一区二区欧美| 手机免费看av片| 久久综合色一综合色88| 麻豆91精品91久久久| 欧美精品欧美精品系列| 天堂网在线资源| 九九视频这里只有精品| 456成人影院在线观看| 国产精品初高中精品久久| 欧美aaaa视频| 日韩av片网站| 26uuu亚洲综合色欧美 | 国产精品地址| 亚洲一区二区在线视频观看| 国产人久久人人人人爽| 青青草av在线播放| 精品国产不卡一区二区三区| a黄色片在线观看| 国产精品欧美久久久| 国产精品美女久久久久久不卡 | 51一区二区三区| 国产一级精品aaaaa看| 欧美777四色影| 日韩欧美理论片| 一区精品在线播放| 97国产精品久久久| 中文字幕亚洲自拍| 欧美日一区二区三区| 免费日韩av电影| 免费在线日韩av| 国产伦精品一区二区三区妓女 | 欧美丰满老妇厨房牲生活| 韩国精品视频在线观看| 日韩中文字幕av在线| 亚洲性图久久| 中文字幕在线播放一区二区| 亚洲欧美日韩系列| 自拍偷拍精品视频| 亚洲男人第一av网站| 91色在线看| 99在线视频免费观看| 欧美日韩日本国产亚洲在线 | 老司机午夜av| 国产目拍亚洲精品99久久精品| 国产a∨精品一区二区三区仙踪林| 日韩亚洲欧美综合| 国模雨婷捆绑高清在线| 波多野结衣成人在线| 黄色成人91| 国产精品揄拍100视频| 日本国产一区二区| eeuss影院在线播放| 川上优av一区二区线观看| 欧美福利网址| 亚洲一级av无码毛片精品| 色婷婷综合在线| 天堂аⅴ在线地址8| 91精品久久久久久蜜桃| 黑人一区二区| 在线免费观看麻豆| 欧美日韩中文精品| 污污在线观看| 九色一区二区| 美女视频网站久久| 欧美三级免费看| 日韩欧美中文字幕公布| 91在线三级| 手机在线观看国产精品| 国产成人综合在线| 国产婷婷色一区二区在线观看| 在线播放国产一区二区三区| 国产剧情一区二区在线观看| 欧美激情视频免费看| 国产高清精品在线| 精品一区免费观看| 精品视频久久久久久| 激情小说亚洲| 国产高清av在线播放| 中文字幕av资源一区| 国产精品久久久久久69| 欧美做受高潮1| 欧美精品国产一区| 香港三日本8a三级少妇三级99| 91国偷自产一区二区开放时间| 宅男网站在线免费观看| 欧美在线视频二区| 极品销魂美女一区二区三区| 在线观看国产亚洲| 久久精品夜夜夜夜夜久久| 日韩成人av在线资源| 中文字幕日韩久久| 色婷婷久久久亚洲一区二区三区| av毛片在线| 亚洲精品tv久久久久久久久| 成人av手机在线观看|