劍指offer36 二叉樹的深度

2021-07-13 23:24:51 字數 1057 閱讀 9545

一、題目

最簡單的方式就是使用遞迴的方式來遍歷二叉樹,在遞迴的處理函式中逐漸增加二叉樹的深度

平衡二叉樹的思想和上面的二叉樹的思想其實差不多,不過平衡二叉樹是比較left和right的差值

package 劍指offer;

/*題目一:輸入一棵二叉樹的根結點,求該樹的深度。從根結點到葉子點依次經過的結點

*(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。

*/public class test39

int left = treedeepth(root.left);

int right = treedeepth(root.right);

if(left > right)else }

// 判斷乙個數是否是平衡二叉樹

public static boolean isbalanced(binarynode root)

int left = treedeepth(root.left);

int right = treedeepth(root.right);

int differ = left - right;

if(differ > 1 || differ < -1)

return isbalanced(root.left) && isbalanced(root.right); }

public static boolean isbalanced2(binarynode root)

int left = treedeepth(root.left);

int right = treedeepth(root.right);

int differ = left - right;

if(differ > 1 || differ < -1)

return isbalanced(root.left) && isbalanced(root.right); }

public static void main(string args)

} class binarynode

}

劍指offer 二叉樹的深度

輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。如果二叉樹只有根節點那麼深度就是1,如果只有左子樹,那麼就是左子樹的深度加1就是整棵二叉樹的深度 如果只有右子樹,那麼二叉樹的深度就是右子樹的深度加1 如果既有左子樹又有右子樹,那...

劍指offer 二叉樹的深度

輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。思路 面對樹形結構,我們常用的演算法就是遞迴,根樹的每一塊子樹都可以看成一棵小的完整的樹,這位我們解題提供了很好的思路。如果一開始傳入的就是空的那麼深度就是0,如果不是0,那麼這顆...

劍指offer 二叉樹的深度

class solution def treedepth self,proot write code here if proot none return 0 return max 1 self.treedepth proot.left 1 self.treedepth proot.right 非常簡...