樹的性質篇

2021-08-21 07:14:39 字數 1169 閱讀 7254

樹的性質判斷是樹的資料結構比較基本的操作,一般考到都屬於非常簡單的題目,也就是第一道入門題,面試中最好不能有問題,力求一遍寫對,不要給面試官任何挑刺機會。leetcode中關於樹的性質有以下題目:

maximum depth of binary tree

minimum depth of binary tree

balanced binary tree

same tree

symmetric tree(對稱樹)

求一顆樹的映象

樹的子結構

首先說說關於求樹的深度的題目,最簡單的是求最大深度

maximum depth of binary tree,一般都是用遞迴實現。思路很簡單,只需要對走到空結點返回0,然後其他依次按層遞增,取左右子樹中大的深度即可。

minimum depth of binary tree稍微複雜一點,主要是要注意因為是取左右子樹小的深度,但是有一種情況是不計入深度的,就是比如左子樹徹底為空時,這種情況我們不會認為深度就是0,因為左邊並沒有葉子,按照定義我們是要找葉子結點的最小深度。所以需要對於左右是否為空做乙個額外的判斷。

求樹的深度屬於簡單的題目,所以如果遞迴實現比較快的話,面試官可能會問非遞迴怎麼實現,如果有時間的話還是得練習一下哈,原理跟

leetcode總結 -- 樹的遍歷篇是一致的。

balanced binary tree是用額外的布林變數來維護

求深度的一道擴充套件題目,基本原理還是求深度。不過需要增加的環節是判斷他是不是平衡樹,因為深度是我們必須維護的量,如果選

是否為平衡樹也可以。不過這裡可以利用深度大於0的性質,可以將平衡的樹返回正常的深度值,而不平衡的則返回-1來進行區分,這樣相當於用乙個變數維護了想要的兩種性質,**實現也比較簡單。

same tree也是比較基礎的題目,和樹的遍歷時一樣的,只是對兩棵樹同時做相同的遍歷,然後進行一一比較,如果出現不同則返回false即可。

symmetric tree會稍微繞一點,不過想清楚跟

same tree還是差不多,第乙個不同點是要根據左右子樹比較,其實就是把左右子樹當成

same tree中的兩個樹即可。第二個不同點是在遞迴過程中對於結點的左右子樹進行互換比較,也就是左跟右比,右跟左比。

這篇總結主要提到了leetcode中求樹的一些基本性質的題目,這類題目比較簡單,屬於最低門檻題目,所以要力求bug free地一遍完成哈。

LeetCode總結 樹的性質篇

樹的性質判斷是樹的資料結構比較基本的操作,一般考到都屬於非常簡單的題目,也就是第一道入門題,面試中最好不能有問題,力求一遍寫對,不要給面試官任何挑刺機會。leetcode中關於樹的性質有以下題目 maximum depth of binary tree minimum depth of binary...

B 樹(B樹)的性質

b 樹是一種常見的資料結構。和他一起的還有b 樹。在這裡,需要澄清一下概念。b樹,b 樹,b 樹有什麼區別?他們有什麼關係呢?其實,從資料結構來講只有2種,也就是b 樹和b 樹。有時候,b 樹又稱為b樹,他們是乙個東西。請注意,b 樹中間的 是連字元,而不是 減號 英文中是b tree,翻譯成中文後...

11 1 樹的概述 樹的性質

帶有n個頂點的樹含有n 1條邊 這個很容易理解,每2個頂點之間有1條邊嘛。帶有i個內點的滿m叉樹含有n mi 1個頂點 內點就是該頂點有孩子 這個證明很簡單,因為是滿m叉樹,且有i個內點,所以邊的總數為mi,然後結合上面的定理 n 1 mi,即n mi 1。一 個滿 m叉樹若 有 n個頂點,則有 i...