輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。
public class solution
return 1+math.max(treedepth(root.right),treedepth(root.left));
}}
非遞迴層次遍歷:
public class solution1
queuequeue = new linkedlist();
queue.add(proot);
int depth = 0, count = 0, nextcount = 1;
while(queue.size()!=0)
if(top.right != null)
if(count == nextcount)
}return depth;
}}
劍指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 非常簡...
劍指offer 二叉樹的深度
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。這道題蠻簡單的,求二叉樹的深度。可以是遞迴的方法,屬於dfs 深度優先搜尋 另一種方法是按照層次遍歷,屬於bfs 廣度優先搜尋 dfs struct treenode class ...
劍指offer 二叉樹的深度
二叉樹的運算一般用常規的遞迴方法,簡潔。class solution def treedepth self,proot if not proot return 0 count max self.treedepth proot.left self.treedepth proot.right 1 ret...