Stack类:
扩展了Vector类;方法:
1、public push(item):把item放入栈顶;
2、public TYPE pop():移除堆栈顶部的对象,并作为此函数的值返回该对象。
3、public TYPE peek():查看堆栈顶部的对象,但不从堆栈中移除它。
4、boolean empty():测试堆栈是否为空。
5、int search(Object o):返回对象在堆栈中的位置,以 1 为基数。
解法:深度优先搜索
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int maxDepth(TreeNode root) {
Stack nodes = new Stack();
Stack values = new Stack();
----------------------------------------------------
或者:Stack<TreeNode> nodes = new Stack<>();
Stack<Integer> values = new Stack<>();(注:不可为int)
-----------------------------------------------------
int max = 0;
if(root == null) return max;
nodes.push(root);
values.push(1);
while(!nodes.isEmpty()){
TreeNode node = (TreeNode)nodes.pop();
int value = (int)values.pop();
if(node.left==null && node.right==null) {
max = Math.max(value, max);
}
if(node.left!=null){
nodes.push(node.left);
values.push(value+1);
}
if(node.right!=null){
nodes.push(node.right);
values.push(value+1);
}
}
return max;
}
}