Maximum Depth of Binary Tree
今天是一道有关二叉树的题目,来自LeetCode,难度为Easy,Acceptance为46.3%。
题目如下
Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
解题思路及代码见阅读原文
回复0000查看更多题目
解题思路
该题较为简单,不想做过多的解释。
首先,看到二叉树,应该立刻就想到二叉树的三种遍历方式,看看哪种方法可用。
那么,这里要求二叉树的最大深度,很容易就可以想到前序遍历和中序遍历不适用,而后序遍历是适用的。即对一个节点来说,应先求左右子树的最大深度,然后取其中较大的一个,然后加1,即为该节点的最大深度。
最后我们来看代码。
代码如下
Java版
/**
* Definition of TreeNode:
* public class TreeNode {
* public int val;
* public TreeNode left, right;
* public TreeNode(int val) {
* this.val = val;
* this.left = this.right = null;
* }
* }
*/
public class Solution {
/**
* @param root: The root of binary tree.
* @return: An integer.
*/
public int maxDepth(TreeNode root) {
// write your code here
if(null == root)
return 0;
int l = maxDepth(root.left);
int r = maxDepth(root.right);
return Math.max(l, r) + 1;
}
}
关注我
该公众号会每天推送常见面试题,包括解题思路是代码,希望对找工作的同学有所帮助