二叉树的最大深度
题目思路代码结果
题目
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
思路
用广搜吧,把每一层的节点都拓展进去,然后,利用一个size来记录当前层的节点个数,当size==0时,表明把当前层的节点都拓展完毕了,就把答案的数目自增1.
代码
import java
.util
.LinkedList
;
import java
.util
.Queue
;
class TreeNode {
int val
;
TreeNode left
;
TreeNode right
;
TreeNode(int x
) { val
= x
; }
}
class Solution {
public int maxDepth(TreeNode root
) {
if (root
==null
)
return 0;
Queue
<TreeNode> queue
=new LinkedList();
int ans
=0;
queue
.offer(root
);
while (!queue
.isEmpty())
{
int size
=queue
.size();
while (size
>0)
{
TreeNode node
=queue
.poll();
if (node
.left
!=null
)
queue
.offer(node
.left
);
if (node
.right
!=null
)
queue
.offer(node
.right
);
--size
;
}
++ans
;
}
return ans
;
}
}
结果
简单搜索题,没有什么好说的!