更新時(shí)間:2023-04-28 來源:黑馬程序員 瀏覽量:
IT就到黑馬程序員.gif)
二叉樹(Binary Tree) 是一種樹形數(shù)據(jù)結(jié)構(gòu),其中每個(gè)父節(jié)點(diǎn)最多可以有兩個(gè)子節(jié)點(diǎn)。 二叉樹的每個(gè)節(jié)點(diǎn)(node)包含三個(gè)屬性:data
數(shù)據(jù)、left 左子節(jié)點(diǎn)的地址、right 右子節(jié)點(diǎn)的地址。
滿二叉樹(Full Binary Tree):每個(gè)結(jié)點(diǎn)要么沒有子結(jié)點(diǎn),要么有兩個(gè)子結(jié)點(diǎn)。

完美二叉樹(Pefect Binary Tree):每個(gè)結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn),所有葉子結(jié)點(diǎn)都在同一層。

完全二叉樹(Complete Binary Tree):從根結(jié)點(diǎn)到倒數(shù)第二層為完美二叉樹,最后一層可以不完全填充,其葉子結(jié)點(diǎn)都靠左對(duì)齊。

二叉樹天然的具有遞歸結(jié)構(gòu),二叉樹的遞歸定義為:二叉樹是一棵空樹,或者是一棵由一個(gè)根節(jié)點(diǎn)和兩棵互不相交的, 分別稱作根的左子樹和右子樹組成的非空樹;左子樹和右子樹又同樣都是二叉樹。

二叉樹的遍歷方式
LeetCode 題目中,二叉樹的遍歷方式是最基本,也是最重要的一類題目。先介紹一下二叉樹的遍歷方式。
先序遍歷(前序遍歷):按照根節(jié)點(diǎn) -> 左孩子 -> 右孩子 的方式遍歷,即「先序遍歷」,每次先遍歷根節(jié)點(diǎn),遍歷結(jié)果為 1 2 4 5 3 6 7;

中序遍歷:按照左孩子 -> 根節(jié)點(diǎn) -> 右孩子 的方式遍歷,即「中序序遍歷」,遍歷結(jié)果為 4 2 5 1 6 3 7;

后序遍歷:按照左孩子 -> 右孩子 -> 根節(jié)點(diǎn) 的方式遍歷,即「后序序遍歷」,遍歷結(jié)果為 4 5 2 6 7 3 1;

層序遍歷:按照每一層從左向右的方式進(jìn)行遍歷,遍歷結(jié)果為 1 2 3 4 5 6 7。

1024首播|39歲程序員逆襲記:不被年齡定義,AI浪潮里再迎春天
2025-10-241024程序員節(jié)丨10年同行,致敬用代碼改變世界的你
2025-10-24【AI設(shè)計(jì)】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計(jì)連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運(yùn)營】深圳跨境電商運(yùn)營畢業(yè)22個(gè)工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運(yùn)維】鄭州運(yùn)維1期就業(yè)班,畢業(yè)14個(gè)工作日,班級(jí)93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19