tag 二叉樹

標籤
貢獻28
96
05:41 AM · Nov 03 ,2025

@二叉樹 / 博客 RSS 訂閱

alwaysbeta - 使用 Go 語言實現二叉搜索樹

原文鏈接: 使用 Go 語言實現二叉搜索樹 二叉樹是一種常見並且非常重要的數據結構,在很多項目中都能看到二叉樹的身影。 它有很多變種,比如紅黑樹,常被用作 std::map 和 std::set 的底層實現;B 樹和 B+ 樹,廣泛應用於數據庫系統中。 本文要介紹的二叉搜索樹用的也很多,比如在開源項目 go-zero 中,就被用來做路由管理。 這篇文章也算是一篇前導文章,介紹一些必備知識,下一篇再

數據結構 , 算法 , 二叉樹 , go

收藏 評論

喬梓鑫 - Morris遍歷(線索二叉樹)

前言 現將左老師課上的morris遍歷內容進行歸納整理,java版本代碼均為左老師課上代碼,c++代碼為本人直接改寫,並均通過leetcode測試。 什麼是morris遍歷 morris遍歷是利用二叉樹本身空閒出來的指針(n個節點的二叉樹有n+1個指針空閒)來作為輔助變量完成二叉樹的遍歷的一種方法。Morris遍歷法能以O(1)的空間複雜度和O(n)的時間複雜度實現二叉樹的三種遍歷,其中不使用棧或

遍歷 , 二叉樹 , 數據結構和算法

收藏 評論

醉舞經閣 - JZ-076-樹中兩個節點的最低公共祖先

樹中兩個節點的最低公共祖先 題目描述 二叉查找樹 * 二叉查找樹中,兩個節點 p, q 的公共祖先 root 滿足 root.val = p.val root.val = q.val。 題目鏈接: [樹中兩個節點的最低公共祖先]() 代碼 /** * 標題:樹中兩個節點的最低公共祖先 */ public class Jz76 { /** * 二叉查找樹

遞歸 , 算法 , JAVA , 二叉樹

收藏 評論

週一pro - 二叉樹遞歸套路(2):判斷二叉樹是否是搜索二叉樹、二叉樹的最大距離

本篇繼續來聊聊二叉樹的遞歸套路。 一、判斷二叉樹是否是搜索二叉樹 搜索二叉樹定義:二叉樹中的任意一個以X為頭的子樹,左子樹都比X小,右子樹都比X大。(經典的搜索二叉樹是沒有重複值的) 1、經典做法 中序遍歷,結果是遞增的,説明這是搜索二叉樹。 2、遞歸套路思路 分析任意一個以X為頭的子樹,滿足以X為頭的子樹是搜索二叉樹的條件(列出所有可能性) 1)左子樹是搜索二叉樹 2)右子樹是搜索二叉樹 3)左

遞歸 , 算法 , 數據結構與算法 , 二叉樹 , 數據結構和算法

收藏 評論

週一pro - 二叉樹遞歸套路:判斷二叉樹是否是完全二叉樹、判斷二叉樹是否是平衡二叉樹

二叉樹的基本套路我們已經很熟悉了,接下來我們聊聊二叉樹的遞歸套路,可以解決面試中絕大多數的二叉樹問題,尤其是樹型dp問題,其本質是利用遞歸遍歷二叉樹的便利性。 判斷二叉樹是否是完全二叉樹 1、經典寫法思路 (1)某個節點有右孩子無左孩子,則一定不是完全二叉樹 (2)當第一次遇到左右孩子不雙全的節點時,以後遇到的節點都是葉節點 2、遞歸套路思路 對於任意一顆子樹,判斷是否是完全二叉樹的條件(列出所有

遞歸 , 算法 , 數據結構與算法 , 二叉樹 , 數據結構和算法

收藏 評論

代碼的路 - C++ 自定義二叉樹並輸出二叉樹圖形

原文鏈接 使用C++構建一個二叉樹並輸出。 輸入 輸入根節點為10,依次輸入6、4、8、14、12、16 代碼如下: #include stdio.h #include stdlib.h #include vector #includeiostream #include stack #includecstdlib #include string using namespace std; s

c++ , 二叉樹

收藏 評論

夢想啓航吧 - 二級間接索引示意圖

#define _CRT_SECURE_NO_WARNINGS 1 //樹:非線性的數據結構,由有限個節點組成一個具有層次關係的集合。像是一顆倒掛的樹,所以叫樹。 //樹的相關概念: //1、節點的度:一個節點含有的子樹的個數成為節點的度 //2、葉節點(終端節點):度為0的節點稱為終端節點,(子節點為空的節點) //3、非終端節點(分支節點):度不為0的節點,即(

二級間接索引示意圖 , 大數據 , 數據倉庫 , 二叉樹 , 子樹 , 子節點

收藏 評論

後廠村村長 - 二叉樹力扣專題備忘

先把二叉樹的四種遍歷模式和結果記錄下來,然後倒推各種解法,如下圖所示: 4種遍歷模式的順序 前序遍歷:根、左、右 中序遍歷:左、根、右 後序遍歷:左、右、根 層次遍歷:一層一層遍歷 4種遍歷模式及結果如下 前序遍歷:1 2 4 5 7 8 3 6 中序遍歷:4 2 7 5 8 1 3 6 後序遍歷:4 7 8 5 2 6 3 1 層次遍歷:1 2 3 4 5 6 7

二叉樹

收藏 評論

醉舞經閣 - LeetCode-199-二叉樹的右視圖

二叉樹的右視圖 題目描述:給定一個二叉樹的 根節點 root,想象自己站在它的右側,按照從頂部到底部的順序,返回從右側所能看到的節點值。 示例説明請見LeetCode官網。 來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/probl... 著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。 解法一:層序遍歷二叉樹

leetcode個人解題總結 , 算法 , JAVA , 二叉樹

收藏 評論

SnowWolfArden - Day 11/100 二叉樹的層序遍歷

/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right =

遍歷 , 二叉樹 , Javascript

收藏 評論

數據小探 - 添加索引 可以階段性執行嗎

1.索引 作用: - 約束 - 加速查找 索引分類(約束): - 普通索引:加速查找 - 主鍵索引:加速查找 + 不能為空 + 不能重複 - 唯一索引:加速查找 + 不能重複 - 聯合索引(多列) : - 聯合主鍵索引

表名 , 添加索引 可以階段性執行嗎 , 大數據 , 數據倉庫 , 主鍵 , 二叉樹

收藏 評論

witheredwood - 二叉樹中遞歸遇到的問題

本篇文章以求二叉樹中的最大值和最小值的最大差值為例,記錄一下遞歸中遇到的問題,是遞歸時的參數問題,什麼時候需要把變量放在參數中,什麼時候需要把變量定義為全局變量。 變量定義為全局變量 以下面的二叉樹為例,求整棵樹中的節點的值的最大差值,也就是求出最大值和最小值。 前序遍歷的過程如下: 圖中圓圈中記錄的是結點的訪問順序,前序的遍歷順序和訪問順序相同。 走到結點 1 (遍歷結點),記錄下當前的最大值

遞歸 , 二叉樹

收藏 評論

木格 - 【數據結構】——求二叉樹某結點在先序、中序、後序遍歷中的訪問次序

題目要求 設二叉樹採用二叉鏈表存儲結構,結點數據域為字符類型。編寫程序,用先序遞歸遍歷法建立二叉樹的二叉鏈表存儲結構。然後輸入一個字符,輸出該字符在先、中、後序遍歷中的訪問次序(訪問次序從1開始)以及先、中、後序遍歷結果。若輸入的字符不在二叉樹中,輸出相應提示信息。要求程序可以反覆輸入字符並輸出訪問次序及遍歷結果,直到輸入某個特殊字符時結束程序。注意:輸入單個字符時需對其後的換行符進行處理。 數據

遍歷 , 數據結構 , c++ , 二叉樹 , c

收藏 評論

博學谷狂野架構師 - 分享會上狂吹MySQL的4大索引結構,沒想到大家的鑑賞能力如此的~~~~

文章內容整理自【博學谷狂野架構師】 索引(index)是幫助MySQL高效獲取數據的數據結構(有序)。在數據之外,數據庫系統還維護着滿足 特定查找算法的數據結構,這些數據結構以某種方式引用(指向)數據, 這樣就可以在這些數據結構 上實現高級查找算法,這種數據結構就是索引。 優缺點: 優點: 提高數據檢索效率,降低數據庫的IO成本 通過索引列對數據進行排序,降低數據排序的成本,降

紅黑樹 , 索引 , mysql索引 , JAVA , 二叉樹

收藏 評論

cqu_jiangzhou - 可視化圖解算法29:合併二叉樹

1. 題目 描述 已知兩顆二叉樹,將它們合併成一顆二叉樹。合併規則是:都存在的結點,就將結點值加起來,否則空的位置就由另一個樹的結點來代替。例如: 數據範圍:樹上節點數量滿足 0 ≤n≤500,樹上節點的值一定在32位整型範圍內。 進階:空間複雜度 O(1) ,時間複雜度 O(n) 示例1 輸入: {1,3,2,5},{2,1,3,#,4,#,7} 返回值: {3,4,5,5,4,#,7}

數據結構 , 算法 , leetcode算法 , 筆試 , 二叉樹

收藏 評論

cqu_jiangzhou - 可視化圖解算法34:二叉搜索樹的最近公共祖先

1. 題目 描述 給定一個二叉搜索樹, 找到該樹中兩個指定節點的最近公共祖先。 1.對於該題的最近的公共祖先定義:對於有根樹T的兩個節點p、q,最近公共祖先LCA(T,p,q)表示一個節點x,滿足x是p和q的祖先且x的深度儘可能大。在這裏,一個節點也可以是它自己的祖先. 2.二叉搜索樹是若它的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值; 若它的右子樹不空,則右子樹上所有節點的值均大於它

leetcode , 數據結構 , 算法 , 筆試 , 二叉樹

收藏 評論

cqu_jiangzhou - 可視化圖解算法35:在二叉樹中找到兩個節點的最近公共祖先(二叉樹的最近公共祖先)

1. 題目 描述 給定一棵二叉樹(保證非空)以及這棵樹上的兩個節點對應的val值 o1 和 o2,請找到 o1 和 o2 的最近公共祖先節點。 數據範圍:樹上節點數滿足 1≤n≤10^5^ , 節點值val滿足區間 [0,n) 要求:時間複雜度 O(n) 注:本題保證二叉樹中每個節點的val值均不相同。 如當輸入{3,5,1,6,2,0,8,#,#,7,4},5,1時,二叉樹{3,5,1,6,2,

leetcode , 數據結構 , 算法 , 筆試題 , 二叉樹

收藏 評論

ERP老兵_冷溪虎山 - 我把編程二叉樹算法煮成“七寶美髯丹”,居然治好了我的算法恐懼症!(附4語言源碼/整活土味海報|可白嫖|最小原型)

⚡️ 兄弟姐妹們,你們缺的不是教程,是能跑通的實戰! 💪這篇絕對是乾貨(下文有各種驚喜👇👇),趕緊點贊收藏,源碼|整活海報打包帶走✨✨ ✅✅二叉樹算法手把手教程文章鋪墊蓋地,相信你們也看了很多也學會了,這裏主要講理念+實戰🎈🎈 😭 學渣の懺悔: 説出來你們可能不信,怪蜀黎高四讀完高考才200分,看代碼比看天書還難受!但就在我差點放棄時,突然開竅: “原來算法不是給天才學的,是給會

算法 , JAVA , 二叉樹 , 醫療it , Python

收藏 評論

週一pro - 二叉樹遞歸套路(4):最低公共祖先、派對的最大快樂值

今天繼續二叉樹的遞歸套路。 一、最低公共祖先 給定一個二叉樹的頭節點,和另外兩個節點a、b,返回a、b的最低公共祖先。 最低公共祖先定義:a、b往上找,第一個相同的祖先(這個公共祖先也可能是a或b自己) 1、遞歸套路思路 對於二叉樹中的任意一個節點X,以及兩個節點a、b,a和b的最低公共祖先分為兩種情況。 (1)與X無關,即最低公共祖先不是X a、b在左樹中某個點匯聚了 a、b在右樹中某個點匯聚了

數據結構 , 算法 , JAVA , 二叉樹 , 數據結構和算法

收藏 評論

土豆 - 二叉樹遍歷——中序遍歷(Golang)

簡介 中序遍歷(LDR)是二叉樹遍歷的一種,也叫做中根遍歷、中序周遊。 定義 在二叉樹中,中序遍歷首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。若二叉樹為空則結束返回,否則:(1)中序遍歷左子樹(2)訪問根結點(3)中序遍歷右子樹 如圖所示二叉樹,中序遍歷結果:DBEAFC Golang遍歷實現 // TreeNode Definition for a binary tree no

遍歷 , 二叉樹 , go

收藏 評論

最多選5個技能 - 軟件設計師軟考備戰:第一篇 數據結構與算法基礎

1 數據結構的基本概念與重要性 數據結構是計算機存儲、組織數據的方式,它決定了數據的邏輯結構、物理存儲結構以及相應的操作算法。在軟件設計師考試中,數據結構與算法佔據着核心地位,約佔總分值的15%-20%。合理選擇數據結構能夠顯著提升程序執行效率,降低系統資源消耗。 數據結構主要分為兩大類:線性結構和非線性結構。線性結構包括數組、鏈表、棧、隊列等;非線性結構則包括樹、圖

時間複雜度 , 數據結構 , 後端開發 , 二叉樹 , Python

收藏 評論

Believer - 二叉樹中的小鋼炮:🔍二叉查找樹

原文參考我的公眾號文章 梳理一波「二叉樹 二叉樹 二叉樹,顧名思義,每個節點最多有兩個“叉”,也就是兩個子節點,分別是左子節點和右子節點。不過,二叉樹並不要求每個節點都有兩個子節點,有的節點只有左子節點,有的節點只有右子節點。 根節點:無父節點的節點 葉子結點:無子節點的節點 兄弟節點:有相同根節點的節點 關於“樹”,還有三個比較相似的概念:高度(Height)、深度(Depth)、層(

數據結構 , 算法 , 二叉樹 , Javascript

收藏 評論

翁樂安 - [算法數據結構] 二叉樹的幾種操作方法及思考

二刷代碼隨想錄,在做二叉樹的時候總結一下規律,以加深對二叉樹的理解。 遞歸遍歷 首先,回顧一下其他的數據結構,如數組,鏈表,棧和隊列,比較少的出現遞歸的操作,一遍都是直接遍歷循環。之所以在二叉樹的體系裏出現遞歸,和樹的數據結構的特點相關:由root節點和左右節點及節點的節點...構成。本質上是存在一個指針的不斷鏈接。因此和數組這種地址連續的結構相比,樹的節點沒有辦法通過依次尋找地址來

算法 , 二叉樹

收藏 評論

週一pro - 二叉樹遞歸套路(3):判斷是否是滿二叉樹、最大子搜索二叉樹的節點數

今天繼續二叉樹的遞歸套路。 一、判斷是否是滿二叉樹 滿二叉樹定義:對於高度為h的二叉樹,節點數為(2^h - 1) 1、遞歸套路思路 根據滿二叉樹的定義可以知道,我們每次只需要獲取高度、節點數即可。 也就是每次從左子樹和右子樹中我們都需要 高度、節點數 兩個數據,最後再根據高度和節點數的關係判斷是否是滿二叉樹。所以可以定義如下的Info類 /** *@authorJava和算法學習:週一 */ p

遞歸 , 算法 , 數據結構與算法 , 二叉樹 , 數據結構和算法

收藏 評論