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结点可以入栈。