题目
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7],
返回它的最大深度 3 。
代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* public int val;
* public TreeNode left;
* public TreeNode right;
* public TreeNode(int x) { val = x; }
* }
*/
public class Solution
{
public int MaxDepth(TreeNode root)
{
int result = 0;
Queue<TreeNode> queue = new Queue<TreeNode>();
Queue<TreeNode> tempQueue = new Queue<TreeNode>();
if (root != null)
{
queue.Enqueue(root);
}
while (queue.Count > 0)
{
while (queue.Count > 0)
{
tempQueue.Enqueue(queue.Dequeue());
}
result++;
while (tempQueue.Count > 0)
{
var element = tempQueue.Dequeue();
if (element.left != null)
{
queue.Enqueue(element.left);
}
if (element.right != null)
{
queue.Enqueue(element.right);
}
}
}
return result;
}
}