輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。
class Solution { public: int TreeDepth(TreeNode* pRoot) { if(!pRoot) retu ...
class Solution { public: int TreeDepth(TreeNode* pRoot) { if(!pRoot) retu ...
// ConsoleApplication2.cpp : 定義控制台應用程序的入口點。 // ...
解題思路: 剛開始想到的就是利用回溯,樹的最小深度等於樹的左右子樹的最小深度+1; 根據這個想法,寫出解題算法 public class Solution { public int run(TreeNode root) { TreeNode node ...
...
一、遞歸實現 思想:借助棧結構來保存路徑上的結點,首先從根結點開始,一直往左找,如果左邊找到就返回true;否則,如果左邊找不到並且右子樹不為空的情況下再繼續往右子樹找。如果左右子樹都找不到,就彈出棧頂結點並返回false。方法運行完畢后,棧中保存的元素就是一條從根到給定結點的路徑 ...
有一棵二叉樹,如下圖所示: 其中 # 表示空結點。 先序遍歷:A B D E G C F 問題:怎么得到從根結點到任意結點的路徑呢? 示例:輸入 G,怎么得到從結點 A 到結點 G 的路徑呢? 很明顯,我們一眼就能看出來路徑是 A B E G。如何通過程序得到這條 ...
); return (dl>dr ? dl : dr)+1; } 2.程序代碼(結點數 ...