您的位置:首页 > 其它

leetcode记录 104. Maximum Depth of Binary Tree

2016-05-13 11:02 309 查看
自己思路:在深度优先遍历的时候,记录一个depth变量,如果比maxDepth变量还大,那么就替换

/**
* Definition for a binary tree node.
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode(int x) { val = x; }
* }
*/
public class Solution {
private int maxDepth;
private int depth;

public int maxDepth(TreeNode root) {
if(root==null)
return 0;
else{
maxDepth = 1;
depth = 0;
}
treeTraverse(root);
return maxDepth;
}

private void treeTraverse(TreeNode root){
depth++;
if(depth>maxDepth){
maxDepth=depth;
}
if(root.left!=null)
treeTraverse(root.left);
if(root.right!=null)
treeTraverse(root.right);
depth--;
}
}


还可以利用递归左右子树的方式,取左右子树中哪个子树深度更大(摘别人的代码):

public int maxDepth(TreeNode root)
{
return maxDepth(root, 0);
}

private int maxDepth(TreeNode node,int depth)
{
if(node==null) return depth;

return Math.max(maxDepth(node.left,depth+1), maxDepth(node.right, depth+1));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: