标签:leetcode
https://oj.leetcode.com/problems/maximum-depth-of-binary-tree/
http://blog.csdn.net/linhuanmars/article/details/19659525
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int maxDepth(TreeNode root)
{
// Solution A:
return maxDepth_DFS(root, 0);
// Solution B:
// return maxDepth_BFS(root);
}
/////////////////////////////
// Solution A: DFS
//
private int maxDepth_DFS(TreeNode node, int lastDepth)
{
if (node == null)
return lastDepth;
return Math.max(maxDepth_DFS(node.left, lastDepth + 1), maxDepth_DFS(node.right, lastDepth + 1));
}
/////////////////////////////
// Solution B: BFS
//
private int maxDepth_BFS(TreeNode root)
{
if (root == null)
return 0;
// Use node.val as its depth
root.val = 1;
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
int max = 0;
while (!queue.isEmpty())
{
TreeNode node = queue.poll();
if (node.left == null && node.right == null && node.val > max)
{
max = node.val;
}
if (node.left != null)
{
node.left.val = node.val + 1;
queue.offer(node.left);
}
if (node.right != null)
{
node.right.val = node.val + 1;
queue.offer(node.right);
}
}
return max;
}
}[LeetCode]104 Maximum Depth of Binary Tree
标签:leetcode
原文地址:http://7371901.blog.51cto.com/7361901/1599599