先序用递归
后续用迭代