6 二叉樹相關題目

2021-10-18 01:25:24 字數 1236 閱讀 5652

目錄:

nc5:二叉樹根節點到葉子節點和為指定值的路徑

思路:先序遍歷的思想(根左右)+數字求和(每一層都比上層和*10+當前根節點的值)

nc6:二叉樹的最大路徑和:

思路1:遞迴樹的節點

思路2:層序遍歷

nc8:二叉樹根節點到葉子節點和為指定值的路徑

思路:樹的深度優先遍歷dfs

nc9:二叉樹中是否存在節點和為指定值

思路:採用遞迴的方法求解

nc11:將公升序陣列轉化為平衡二叉搜尋樹

解法1:遞迴

nc12:重建二叉樹:

①根據後序遍歷和中序遍歷重建二叉樹

②根據前序遍歷和中序遍歷重建二叉樹:

nc13①:二叉樹的最大深度:

解法1:遞迴的方法:

解法2:使用queue進行層序遍歷:

nc13②:二叉樹的最小深度

nc14:層序遍歷

nc14:①二叉樹層序遍歷:

nc14:②底層到頂層的層序遍歷:

nc14:③二叉樹的之字形層序遍歷:

nc16:判斷二叉樹是否對稱

思路1:遞迴

思路2:迭代

nc60:判斷一棵樹是否為搜尋二叉樹和完全二叉樹

nc62:判斷是否是平衡二叉樹:

nc72:二叉樹的映象

解法1:遞迴:

解法2:非遞迴

nc80:把二叉樹列印成多行

解法1:增加兩個treenode:last和nlast

nc81:二叉搜尋樹的第k個結點

解法:中序遍歷

nc98:判斷t1樹中是否有與t2樹拓撲結構

解法1:遞迴

解法2:中序遍歷+strings.contains()

解法3:序列化+kmp

nc84:完全二叉樹的結點數

完全二叉樹和滿二叉樹的區別

解法1:遞迴

解法2:bfs

解法3:根據完全二叉樹的特性,從左子樹找樹的高度

解法4:根據完全二叉樹的特性,從右子樹找樹的高度

nc58:找到搜尋二叉樹中兩個錯誤的節點

解法1: 先求出中序遍歷,然後根據中序遍歷的結果求出異常值

解法2:在遞迴的過程中求出異常值

nc102:在二叉樹中找到兩個節點的最近公共祖先

解法1:遞迴

解法2:路徑

nc123:序列化和反序列化二叉樹

nc136:輸出二叉樹的右檢視

二叉樹的相關題目

目錄 1 求二叉樹的遍歷順序為自下至上,自右至左的層序遍歷序列 2 判斷二叉樹是否為完全二叉樹 3 統計二叉樹中雙分支結點的個數 4 求先序遍歷序列中第k個結點的值 5 求二叉樹的高度 6 判斷二叉樹是否為二叉排序樹 7 求出二叉排序樹中結點所在的層數 演算法思想 使用層序遍歷。二叉樹正常的層序遍歷...

LeetCode 二叉樹相關題目

class solution private 遞迴的方法 void inorder treenode root,vector int nodes inorder root left,nodes nodes.push back root val inorder root right,nodes 非遞迴...

二叉樹題目

struct treenode treenode left treenode right 遞迴解法 如果二叉樹為空,節點個數為0 如果二叉樹不為空,那麼節點個數 左子樹結點個數 右子樹結點個數 1 int getnodenum treenode root 如果二叉樹為空,二叉樹的深度為0 如果二叉樹...