最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

LeetCode-103-二叉樹的鋸齒形層序遍歷

2021-10-30 10:19 作者:雄獅虎豹  | 我要投稿

二叉樹的鋸齒形層序遍歷

題目描述:給定一個(gè)二叉樹,返回其節(jié)點(diǎn)值的鋸齒形層序遍歷。(即先從左往右,再?gòu)挠彝筮M(jìn)行下一層遍歷,以此類推,層與層之間交替進(jìn)行)。

示例說明請(qǐng)見LeetCode官網(wǎng)。

來源:力扣(LeetCode) ??

鏈接:https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversal/ ??

著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

解法一:利用隊(duì)列和棧遍歷二叉樹

隊(duì)列的特點(diǎn)是先進(jìn)先出,棧的特點(diǎn)是后進(jìn)先出,所以利用隊(duì)列和棧來遍歷二叉樹實(shí)現(xiàn)鋸齒形遍歷,具體過程如下:

  • 首先,如果root為空,直接返回空的List。

  • 如果root不為空,聲明一個(gè)隊(duì)列nodes,將root節(jié)點(diǎn)加入到隊(duì)列中,聲明一個(gè)result,聲明一個(gè)boolean類型的變量directionFlag,當(dāng)directionFlag為true時(shí),從左往右往棧中放入節(jié)點(diǎn);當(dāng)directionFlag為false時(shí),從右往左放入節(jié)點(diǎn),然后遍歷nodes中的節(jié)點(diǎn),遍歷過程如下:

    • 首先,用count記錄當(dāng)前隊(duì)列中節(jié)點(diǎn)的數(shù)量,即為當(dāng)前層節(jié)點(diǎn)的數(shù)量,vals記錄當(dāng)前節(jié)點(diǎn)的值,聲明一個(gè)棧temp;

    • 從nodes中按順序取出count個(gè)節(jié)點(diǎn),并且將相應(yīng)的節(jié)點(diǎn)值放入vals中,同時(shí)如果當(dāng)前節(jié)點(diǎn)的左右子節(jié)點(diǎn)不為空,根據(jù)directionFlag判斷是按從左到右的順序還是從右往左的順序放入temp中。然后將vals加入到結(jié)果result中。

    • 將棧temp中的元素全部取出放入nodes。

  • 重復(fù)遍歷nodes中的節(jié)點(diǎn),直到nodes為空。

  • 最后返回result即為鋸齒形層序遍歷的結(jié)果。

說明:解決方法類似 LeetCode-102-二叉樹的層序遍歷

【每日寄語(yǔ)】 學(xué)習(xí)的敵人是自己的滿足,要認(rèn)真學(xué)習(xí)一點(diǎn)東西,必須從不自滿開始!



LeetCode-103-二叉樹的鋸齒形層序遍歷的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
治县。| 凤凰县| 石屏县| 曲阳县| 门源| 九龙坡区| 瓦房店市| 望城县| 平远县| 铜鼓县| 仁化县| 洞头县| 柳林县| 汉沽区| 鄂托克前旗| 全椒县| 阿拉善右旗| 信丰县| 乌兰浩特市| 荆门市| 平安县| 清河县| 略阳县| 营山县| 长兴县| 古浪县| 黄大仙区| 驻马店市| 舟山市| 广水市| 罗田县| 巨野县| 淮北市| 宜都市| 时尚| 依兰县| 定边县| 宁阳县| 黎平县| 明光市| 嘉荫县|