題目:判斷二叉樹是不是平衡二叉樹
分析:平衡二叉樹的特點是,左右子樹的深度不超過1,那麼根據之前求樹的深度進行擴充套件
int finddeepth(binarytreenode* root)
int deepleft =finddeepth(root->left);
int deepright=finddeepth(root->right);
return deepleft>deepright?(deepleft+1):(deepright+1);;
}bool isbalance(binarytreenode* root)
int left=finddeepth(root->left);
int right=finddeepth(root->right);
if (std::abs(left-right)>1)
return isbalance(root->left) && isbalance(root->right);
}
判斷一棵樹是否是另一棵樹的子樹 java實現
這是乙個很經典的演算法題,聽起來好像挺難的,但是其實很簡單。我覺得我們接觸到的問題,並沒有難題,只有複雜不複雜。乙個再難的問題,也可以分解成乙個個簡單的問題,再將這些簡單的問題交給不同的人去做就構成了乙個專案。其實寫演算法也是這個思想。首先要判斷一棵樹是不是另一棵樹的子樹,我們只需遍歷一棵樹,用這個...
判斷一棵樹是否是平衡二叉樹
題目 程式設計題 平衡二叉樹 時間限制 1000 ms,記憶體限制 256000 kb,長度限制 8000 b 判斷乙個二叉樹是不是平衡 說明 一棵二叉樹任意乙個節點的左右子樹的深度差不大於1,即為平衡二叉樹。給定乙個有n個節點的二叉樹,每個節點有乙個序號表示,樹有m條分支。每個分支用三個數字a b...
如何判斷一棵樹是否是平衡二叉樹
判斷的思路很簡單,若一棵樹是平衡二叉樹,它的左右子樹都是平衡二叉樹,並且左右子樹的高度差小於等於1。注意,實現的時候,判斷左右子樹的平衡性時,可以順便計算子樹高度,不用再另外計算一次,下面是其遞迴實現 include using namespace std struct treenode class...