溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java二叉樹的深度舉例分析

發(fā)布時間:2021-12-13 14:58:58 來源:億速云 閱讀:106 作者:iii 欄目:大數據

本篇內容介紹了“Java二叉樹的深度舉例分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

題目

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

分析

求該樹的深度,主要就是看最長路徑。比如下圖的深度為5,最長的路徑為34,99,35,64,77Java二叉樹的深度舉例分析

那應該怎么做?這里用遞歸,如果當前節(jié)點沒有左右節(jié)點,就返回當前節(jié)點,如果有左右節(jié)點,就返回左右節(jié)點的,比較左節(jié)點和右節(jié)點的深度,誰的深度大就返回那個。這樣就可以獲得樹的最大深度啦。

解法

public int TreeDepth(TreeNode root) {
       if(root==null){
           return 0;
       }

       int left=TreeDepth(root.left);
       int right=TreeDepth(root.right);
       if(left>right){
           return left+1;
       }
       return right+1;

   }

上面主要注意的是left+1 和right+1;為什么要加一呢,因為我們遞歸的出口是當前節(jié)點為null ,返回0,為1個節(jié)點的話返回1.

測試

測試main方法

public static void main(String[] args) {
       TreeNode root =new TreeNode(34);
       root.left=new TreeNode(23);
       root.right=new TreeNode(99);
       root.left.left=new TreeNode(1);
       root.left.right=new TreeNode(27);
       root.right.left=new TreeNode(35);
       root.right.left.right=new TreeNode(64);
       root.right.left.right.right=new TreeNode(77);
       TreeOperation.show(root);
       Solution solution= new Solution();
       System.out.println(solution.TreeDepth(root));
   }

Java二叉樹的深度舉例分析

“Java二叉樹的深度舉例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI