第十天 leetcode算法二叉樹(shù)專(zhuān)項(xiàng)突破 5道題讓你徹底搞懂二叉樹(shù)


144 :?前序遍歷

94 :? ?中序遍歷

145:??后序遍歷

回溯:

22 :括號(hào)生成

78:? 子集

90:? 子集2

77:? 組合

46: 全排列(最經(jīng)典)

938: 二叉搜索樹(shù)的范圍

dfs和bfs

200: 島嶼數(shù)量(經(jīng)典)

102: 二叉樹(shù)層級(jí)遍歷 bfs

107 :二叉樹(shù)的層序遍歷2

中等難度題目:

124:二叉樹(shù)中的最大路徑和? ? ? ? ? 難? 二叉樹(shù)

104: 二叉樹(shù)的最大深度? ? ? ? ? ? ? ? ?二叉樹(shù)

103:? ?二叉樹(shù)的鋸齒形層序遍歷? ? ?二叉樹(shù)

199:? 二叉樹(shù)的右視圖? ? ? ? ? ? ? ? ? ??二叉樹(shù)

劍指offer題目:

32:從上到下打印二叉樹(shù)

68: 二叉樹(shù)的最近公共祖仙(leetcode236)

二叉樹(shù):(二叉樹(shù)前序、中序疲恢、后序遍歷)

https://juejin.cn/post/6844903960898174984

采用遞歸和非遞歸對(duì)二叉樹(shù)進(jìn)行前序遍歷

二叉樹(shù)的后續(xù)遍歷寓调,非遞歸實(shí)現(xiàn)

概念:

? ? 算法:判斷一棵樹(shù)是否是平衡二叉樹(shù)鏡像二叉樹(shù)阿趁;

什么是完全二叉樹(shù)?

算法熟悉么桅咆?給了一個(gè)二叉排序樹(shù),出了一個(gè)給定節(jié)點(diǎn)找到它的下一個(gè)元素(指的是大小順序的下一個(gè))的算法題

最值:

距離

計(jì)算二叉樹(shù)的最大深度,要求非遞歸算法绿店。

任意一顆二叉樹(shù),求最大節(jié)點(diǎn)距離

任意二叉樹(shù),求出其中最遠(yuǎn)的兩個(gè)節(jié)點(diǎn)間的距離

路徑

二叉樹(shù)的最低深度路徑打印

8.二叉樹(shù)給出根節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)假勿,找出從根節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的路徑

算法題:二叉樹(shù)中和為某一值的路徑

節(jié)點(diǎn):

二叉樹(shù)某一層有多少個(gè)節(jié)點(diǎn)

8.算法題:二叉樹(shù)的每一層最左邊節(jié)點(diǎn)算法題: 230. 二叉搜索樹(shù)中第K小的元素 - 力扣(LeetCode) (leetcode-cn.com)

如果你想學(xué)好算法借嗽,建議上面二叉樹(shù)的題目都刷一下。如果你只是想應(yīng)付面試转培,主要看一下高頻的面試題目即可恶导。

最重要:? ? 二叉樹(shù)的前序遍歷,中序遍歷浸须,后續(xù)遍歷惨寿,記住,遞歸和非遞歸解法都要會(huì)删窒。學(xué)會(huì)舉一反三裂垦。

DFS和bfs,回溯算法和遞歸算法的常規(guī)題目考察

常見(jiàn)的 BST 算法。二叉查找樹(shù)的最近公共祖先(兩個(gè)元素的肌索,三個(gè)元素的蕉拢,多個(gè)元素呢)。二叉樹(shù)的最近公共祖先诚亚。

? ? 最值問(wèn)題包含(路徑,距離,節(jié)點(diǎn),k值問(wèn)題)

樹(shù)的遞歸晕换。比如樹(shù)的深度,最小深度站宗,樹(shù)的鏡像闸准。

二叉樹(shù)種類(lèi)

滿二叉樹(shù)

對(duì)于一棵二叉樹(shù),如果每一個(gè)非葉子節(jié)點(diǎn)都存在左右子樹(shù)梢灭,并且二叉樹(shù)中所有的葉子節(jié)點(diǎn)都在同一層中夷家,這樣的二叉樹(shù)稱(chēng)為滿二叉樹(shù)。

完全二叉樹(shù)

對(duì)于一棵具有n個(gè)節(jié)點(diǎn)的二叉樹(shù)按照層次編號(hào)敏释,同時(shí)瘾英,左右子樹(shù)按照先左后右編號(hào),如果編號(hào)為i的節(jié)點(diǎn)與同樣深度的滿二叉樹(shù)中編號(hào)為i的節(jié)點(diǎn)在二叉樹(shù)中的位置完全相同颂暇,則這棵二叉樹(shù)稱(chēng)為完全二叉樹(shù)缺谴。

平衡二叉樹(shù)

又稱(chēng) AVL 樹(shù)。平衡二叉樹(shù)是二叉搜索樹(shù)的進(jìn)化版耳鸯,所謂平衡二叉樹(shù)指的是湿蛔,左右兩個(gè)子樹(shù)的高度差的絕對(duì)值不超過(guò) 1。

二叉排序樹(shù):

又稱(chēng)二叉查找樹(shù)(Binary Search Tree)县爬,亦稱(chēng)二叉搜索樹(shù)阳啥。二叉排序樹(shù)或者是一棵空樹(shù),或者是具有下列性質(zhì)的二叉樹(shù):

若左子樹(shù)不空财喳,則左子樹(shù)上所有結(jié)點(diǎn)的值均小于它的根結(jié)點(diǎn)的值察迟;

若右子樹(shù)不空斩狱,則右子樹(shù)上所有結(jié)點(diǎn)的值均大于或等于它的根結(jié)點(diǎn)的值;

左扎瓶、右子樹(shù)也分別為二叉排序樹(shù)所踊;

沒(méi)有鍵值相等的節(jié)點(diǎn)

二分查找的時(shí)間復(fù)雜度是O(log(n)),最壞情況下的時(shí)間復(fù)雜度是O(n)(相當(dāng)于順序查找)

紅黑樹(shù)

紅黑樹(shù)是每個(gè)節(jié)點(diǎn)都帶顏色的樹(shù)概荷,節(jié)點(diǎn)顏色或是紅色或是黑色秕岛,紅黑樹(shù)是一種查找樹(shù)。紅黑樹(shù)有一個(gè)重要的性質(zhì)误证,從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的最長(zhǎng)的路徑不多于最短的路徑的長(zhǎng)度的兩倍继薛。對(duì)于紅黑樹(shù),插入愈捅,刪除遏考,查找的復(fù)雜度都是O(log N)。

1.數(shù)的基本概念題目(高度,深度,平衡,滿二叉樹(shù))

?樹(shù)的高度

1.0 求二叉樹(shù)的最大層數(shù)(最大深度)

104. Maximum Depth of Binary Tree (Easy)

平衡樹(shù)

110. Balanced Binary Tree (Easy)

2. 前中后序遍歷(遞歸實(shí)現(xiàn)和非遞歸實(shí)現(xiàn))

遍歷方式

二叉樹(shù)主要有四種遍歷方式

先序(先根)遍歷:即先訪問(wèn)根節(jié)點(diǎn)蓝谨,再訪問(wèn)左孩子和右孩子

中序遍歷:先訪問(wèn)做孩子灌具,再訪問(wèn)根節(jié)點(diǎn)和右孩子

后序遍歷:先訪問(wèn)左孩子,再訪問(wèn)右孩子像棘,再訪問(wèn)根節(jié)點(diǎn)

層次遍歷:按照所在層數(shù)稽亏,從下往上遍歷

遞歸

一棵樹(shù)要么是空樹(shù)壶冒,要么有兩個(gè)指針缕题,每個(gè)指針指向一棵樹(shù)。樹(shù)是一種遞歸結(jié)構(gòu)胖腾,很多樹(shù)的問(wèn)題可以使用遞歸來(lái)處理烟零。

前:leetcode144

中:leetcode94

后:leetcode145

二叉樹(shù)的層序遍歷?

二叉樹(shù)的鋸齒形層序遍歷?

非遞歸實(shí)現(xiàn)二叉樹(shù)的前序遍歷

145. Binary Tree Postorder Traversal (Medium)

Leetcode?/?力扣

前序遍歷為 root -> left -> right,后序遍歷為 left -> right -> root咸作∠前ⅲ可以修改前序遍歷成為 root -> right -> left,那么這個(gè)順序就和后序遍歷正好相反记罚。

publicListpostorderTraversal(TreeNode root){? ? List ret =newArrayList<>();? ? Stack stack =newStack<>();? ? stack.push(root);while(!stack.isEmpty()) {TreeNodenode=stack.pop();if(node ==null)continue;? ? ? ? ret.add(node.val);? ? ? ? stack.push(node.left);? ? ? ? stack.push(node.right);? ? }? ? Collections.reverse(ret);returnret;}復(fù)制代碼

非遞歸實(shí)現(xiàn)二叉樹(shù)的中序遍歷

94. Binary Tree Inorder Traversal (Medium)

Leetcode?/?力扣

publicListinorderTraversal(TreeNode root){? ? List ret =newArrayList<>();if(root ==null)returnret;? ? Stack stack =newStack<>();TreeNodecur=root;while(cur !=null|| !stack.isEmpty()) {while(cur !=null) {? ? ? ? ? ? stack.push(cur);? ? ? ? ? ? cur = cur.left;? ? ? ? }TreeNodenode=stack.pop();? ? ? ? ret.add(node.val);? ? ? ? cur = node.right;? ? }returnret;}

leetcode 32:從上到下打印二叉樹(shù)

BST(二叉查找樹(shù))

二叉查找樹(shù)(BST):根節(jié)點(diǎn)大于等于左子樹(shù)所有節(jié)點(diǎn)墅诡,小于等于右子樹(shù)所有節(jié)點(diǎn)。

二叉查找樹(shù)中序遍歷有序桐智。

二叉樹(shù)的最近公共祖先:leetcode236

最值:

距離

計(jì)算二叉樹(shù)的最大深度末早,要求非遞歸算法。

任意一顆二叉樹(shù)说庭,求最大節(jié)點(diǎn)距離

任意二叉樹(shù)然磷,求出其中最遠(yuǎn)的兩個(gè)節(jié)點(diǎn)間的距離

路徑

二叉樹(shù)的最低深度路徑打印

8.二叉樹(shù)給出根節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn),找出從根節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的路徑

算法題:二叉樹(shù)中和為某一值的路徑

節(jié)點(diǎn):

二叉樹(shù)某一層有多少個(gè)節(jié)點(diǎn)

8.算法題:二叉樹(shù)的每一層最左邊節(jié)點(diǎn)算法題: 230. 二叉搜索樹(shù)中第K小的元素 - 力扣(LeetCode) (leetcode-cn.com)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末刊驴,一起剝皮案震驚了整個(gè)濱河市姿搜,隨后出現(xiàn)的幾起案子寡润,更是在濱河造成了極大的恐慌,老刑警劉巖舅柜,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件梭纹,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡业踢,警方通過(guò)查閱死者的電腦和手機(jī)栗柒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)知举,“玉大人瞬沦,你說(shuō)我怎么就攤上這事」臀” “怎么了逛钻?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)锰提。 經(jīng)常有香客問(wèn)我曙痘,道長(zhǎng),這世上最難降的妖魔是什么立肘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任边坤,我火速辦了婚禮,結(jié)果婚禮上谅年,老公的妹妹穿的比我還像新娘茧痒。我一直安慰自己,他們只是感情好融蹂,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布旺订。 她就那樣靜靜地躺著,像睡著了一般超燃。 火紅的嫁衣襯著肌膚如雪区拳。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天意乓,我揣著相機(jī)與錄音樱调,去河邊找鬼。 笑死届良,一個(gè)胖子當(dāng)著我的面吹牛笆凌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播伙窃,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼菩颖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了为障?” 一聲冷哼從身側(cè)響起晦闰,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤放祟,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后呻右,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體跪妥,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年声滥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了眉撵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡落塑,死狀恐怖纽疟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情憾赁,我是刑警寧澤污朽,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站龙考,受9級(jí)特大地震影響蟆肆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晦款,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一炎功、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧缓溅,春花似錦蛇损、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)束世。三九已至酝陈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間毁涉,已是汗流浹背沉帮。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贫堰,地道東北人穆壕。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像其屏,于是被迫代替她去往敵國(guó)和親喇勋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容