題目:給一個二叉樹,返回這棵樹的高度。
解題思路:這個題目就是典型的數(shù)據(jù)結(jié)構(gòu)的題目,自己的基礎(chǔ)不夠扎實,所以想了很久才想出一些思路,肯定是用遞歸實現(xiàn)是最簡單的,但是想了半天只有一點點頭緒,最關(guān)鍵那里怎么都沒想明白,到底應(yīng)該怎么返回才能表示,今天時間緊迫只能翻開自己的數(shù)據(jù)結(jié)構(gòu)的數(shù),看完以后恍然大悟,說到底返回的值不用怎么變化只是子樹加一再判斷左右哪邊大再返回哪一邊,數(shù)據(jù)結(jié)構(gòu)要再學(xué)一遍了,以前學(xué)的朦朦懂懂的,現(xiàn)在看到很多都感覺比較清晰了,附上代碼:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int maxDepth(TreeNode root) {
if(root!=null){
int lDepth =maxDepth(root.left);
int rDepth =maxDepth(root.right);
return 1+(lDepth > rDepth ? lDepth : rDepth);
}else{
return 0;
}
}
}
看了一下最快捷的方法也是這個。