1、stack还可以用Pair
2、max判断的位置选的好
class Solution {
public int maxDepth(TreeNode root) {
if(root==null)
return 0;
int max = 0;
Stack<Pair<TreeNode,Integer>> stack = new Stack<>();
stack.push(new Pair(root,1));
int sum;
while(!stack.isEmpty()){
Pair<TreeNode, Integer> newpair = stack.pop();
TreeNode newtree = newpair.getKey();
sum = newpair.getValue();
if(newtree != null){
max = Math.max(max, sum);
// int i = newtree.val;
stack.push(new Pair<>(newtree.left,sum+1));
// TreeNode left = newtree.left;
// TreeNode right = newtree.right;
stack.push(new Pair<>(newtree.right,sum+1));
}
// sum -= 1;
}
return max;
}
}
null结点可以入栈。

本文介绍了一种利用Pair和Stack数据结构计算二叉树最大深度的方法。通过将节点及其当前深度压入堆栈,遍历左右子树并更新最大深度,实现了高效的二叉树深度计算。

3459

被折叠的 条评论
为什么被折叠?



