难度简单
输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。
例如:
给定二叉树 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回它的最大深度 3 。
提示:
-
节点总数 <= 10000
注意:本题与主站 104 题相同:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/
/**
* Definition for a binary tree node.
* public 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;
}
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
}
}
public int maxDepth(TreeNode root) {
int ret = 1;
if(treeNode== null)return 0;
Stack<TreeNode> stack = new Stack<>();
stack.push(treeNode);
while (!stack.isEmpty()) {
Stack<TreeNode> stack2 = new Stack<>();
while (!stack.isEmpty()) {
treeNode = stack.pop();
if (treeNode.left != null) {
stack2.add(treeNode.left);
}
if (treeNode.right != null) {
stack2.add(treeNode.right);
}
}
stack=stack2;
if (!stack.isEmpty()) {
ret++;
}
}
return ret;
}