} // 求解樹的高度
public static int heigh(node head, int n)
int heigh1 = heigh(head.left, n + 1);
int heigh2 = heigh(head.right, n + 1);
n = math.max(heigh1, heigh2);
//不停向右移動,移動一下,就和最近的資料做比較,返回較大值,
//這個最大值會保留,向上返回,用於下一次比較
system.out.println(n + " ");
return n;
} public static void main(string args)
}控制台:
求解二叉樹的高度(遞迴 非遞迴)
遞迴方式 遞迴方式的求解過程很簡單,只需要將問題分解。首先,遞迴出口是什麼?毫無疑問,當樹節點為空時,我們就可以結束遞迴了。那麼當前樹的高度和其左子樹及右子樹的關係是什麼呢?樹的高度,定義為從根節點到葉子節點的最長路徑 因此當前樹深應該是自身節點所佔的一層高度加上左右子樹中深的高度。因此,有一下遞迴...
重建二叉樹 遞迴求解
題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。首先需要明白的基礎知識 下面說一下整體的思路找到根節點在中序遍歷中的索引index拿到該索引後我們可以知道左子樹和右子樹的節點數量 為了節省記憶體空間,我們對左右子樹進行遞迴的時候不再...
二叉樹深度求解(遞迴,非遞迴)
遞迴實現基本思想 為了求得樹的深度,可以先求左右子樹的深度,取二者較大者加1即是樹的深度,遞迴返回的條件是若節點為空,返回0 演算法 1 intfindtreedeep bintree bt 8return deep 9 非遞迴實現基本思想 受後續遍歷二叉樹思想的啟發,想到可以利用後續遍歷的方法來求...