举例说明
1 2 3进栈
stack1 = 1 2 3
stack2 = null
将stack1的数据转移到stack2,注意先进后出
stack1 = null
stack2 = 3 2 1
此时若 1 要出栈,直接stack2.pop即可。
stack1 = null
stack2 = 3 2
2 出栈
stack1 = null
stack2 = 3
5 6 进栈
stack1 = 5 6
stack2 = 3
此时若要出栈,则必须先出stack2中的元素。
结论:stack1 用来进栈,stack2 用来出栈。按先进后出的顺序将stack1中的元素放入到stack2中,放完一次后,必须先将stack2中的元素全部出栈,才能继续将stack1中的元素放到stack2中。

let stack1 = [];
let stack2 = [];

function push(node)
{
    // stack1用来进栈
    stack1.push(node);
}
function pop()
{
    // stack2用来出栈
    // 若stack2中有元素,则必须先将stack2中的元素出栈,才能再次存放stack1中的元素
    if(stack2.length <= 0){
        while(stack1.length != 0){
            stack2.push(stack1.pop());
        }
    }
    return stack2.pop()
}