如果在一个黑盒的测试过程中,咱们无奈通过debug的形式来单步调试程序,那么怎么能力晓得一个对象的值呢?通过print函数进行打印。对应的java语法就是:

System.out.println(obj);

对于一个对象或者一个数组对象是很容易通过打印或者遍历之后打印对象的值。那么对于栈的数据结构怎么遍历呢?认为遍历之后,栈中的每一个元素都要弹出栈,咱们须要弹出之后再进行压栈的操作。那么有没有简略的形式进行操作呢?能够的!
办法就是通过copy栈中的数据,再遍历。那么有没有clone函数呢?我是没有找到(能够在钻研下)。另外一个形式就是开拓一个新的空间,把栈当做对象增加到新的栈空间中。

public void printStack(Stack<TreeNode> stack){    Stack<TreeNode> copy = new Stack<>();    copy.addAll(stack);    while(!copy.isEmpty()){        System.out.println(copy.pop().val);    }}public class TreeNode {    int val;    TreeNode left;    TreeNode right;    TreeNode(int x) {        val = x;    }}