leetcode记录 104. Maximum Depth of Binary Tree

来源:互联网 发布:极速淘宝秒杀器怎么用 编辑:程序博客网 时间:2024/06/05 12:01

自己思路:在深度优先遍历的时候,记录一个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));}




0 0
原创粉丝点击