判斷一棵二叉樹是否為平衡二叉樹

2021-10-08 14:21:34 字數 592 閱讀 3556

題目描述

對輸入的一棵樹,判斷是否為二叉樹。

step1:對給定二叉樹的所有節點進行遍歷

step2:將每乙個節點都作為根節點,判斷其左右孩子的深度

step3:使用unordered_map記錄下每個節點的深度,最後遍歷每個節點,判斷左右子樹深度之差是否小於等於1

**如下

(這個直接執行可能有些問題,我沒有用編譯器測試,直接網頁編譯器過了我就拿過來了,關於需要修改的我在注釋中指出)

//編譯器需要包含的標頭檔案,在這裡同樣給出

#include

#include

#include

using

namespace std;

class

solution

//遞迴這個節點的左右子節點以及左右子節點的孩子是否深度差值均在1範圍內

bool

check

(treenode* proot)

bool

isbalanced_solution

(treenode* proot)

};

判斷一棵二叉樹是否為平衡二叉樹

1.先給出樹節點資訊 typedef struct treetree,bitree 2.原理 判斷一棵樹是否為平衡二叉樹,要滿足每個節點的左右子樹的高度之差的絕對值不大於1。因此,我們這裡可以比較每個節點的左右字數高度,判斷他們差的絕對值是否滿足平衡二叉樹的條件即可 3.演算法 求二叉樹高度演算法 ...

判斷一棵二叉樹是否是平衡二叉樹

思路 遞迴方式判斷,返回的資訊應該有兩個 1 這棵樹是否是平衡的 2 這棵樹的高度為多少 public class isbalancedtree public static class returndata public static returndata process node head ret...

如何判斷一棵二叉樹是否是平衡二叉樹

平衡二叉樹的定義,如果任意節點的左右子樹的深度相差不超過1,那這棵樹就是平衡二叉樹。演算法思路 先編寫乙個計算二叉樹深度的函式getdepth,利用遞迴實現 然後再遞迴判斷每個節點的左右子樹的深度是否相差1 static int getdepth binnode root 注意這裡的 1,對應於ro...