判斷一棵二叉樹是否是平衡二叉樹 求一顆二叉樹的映象

2021-08-04 05:42:32 字數 366 閱讀 7131

根據平衡二叉樹的定義,如果任意節點的左右子樹的深度相差不超過1,那這棵樹就是平衡二叉樹。

首先編寫乙個計算二叉樹深度的函式,利用遞迴實現。

int depth(treenode*proot)

}bool isbalancetree(treenode*proot)

二叉樹的映象其實就是原二叉樹所有節點的左右子樹互相交換後的結果,所以可以用乙個遞迴來解決問題,依次遞迴二叉樹的所有節點,然後交換這個節點左右子樹,直到根節點。

void mirror(treenode *proot) 

if (proot->right)

}

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

思路 遞迴方式判斷,返回的資訊應該有兩個 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...

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

平衡二叉樹 空樹或者左右兩個孩子高度差不超過1 在涉及到二叉樹的題目時,遞迴函式非常好用 列出可能性 整理出返回值的型別 整個遞迴過程按照同樣的結構得到子樹的資訊,整合子樹的資訊,加工出應該返回的資訊,向上返回 1.左子樹是否平衡 2.右子樹是否平衡 3.左子樹的高度 4.右子樹的高度 根據可能性,...