标签:
Maximum Depth of Binary Tree:
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.
Code:
/** * 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. */ private int depth = 0; public int maxDepth(TreeNode root) { // write your code here // handle corner case if (root == null) { return 0; } // start from the root helper(root, 1); return depth; } private void helper(TreeNode node, int curtDepth) { // if reach the null if (node == null) { return; } //refresh depth if (curtDepth > depth) { depth = curtDepth; } // go for left and right helper(node.left, curtDepth + 1); helper(node.right, curtDepth + 1); } }
Thr trick here is to set the depth variable and refresh it in the helper method, helper method is a recursive method, the return condition is when we reach the null node.
LintCode: Maximum Depth of Binary Tree
标签:
原文地址:http://www.cnblogs.com/dingjunnan/p/5271775.html