劍指offer 二叉樹的深度

2022-07-12 09:54:12 字數 705 閱讀 4177

題目:輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。

分析:恩。。沒啥好分析的,很基礎的一題,有多種解法,如遞迴,層次遍歷。

解法一:遞迴

樹的深度=max(左子樹的深度, 右子樹的深度)+ 節點本身的深度(為1)

遞迴終止條件:如果節點本身為null,則返回深度為0.

**如下:

1/*2

struct treenode 9};

*/10

class

solution

17int left = treedepth(proot->left);

18int right = treedepth(proot->right);

19return max(left, right) + 1;20

}21 };

解法二:層次遍歷

1/*2

struct treenode 9};

*/10

class

solution

19que.push(proot);

20while(!que.empty())

29if (tmp->right !=null) 32}

33}34return

depth;35}

36 };

劍指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 非常簡...