每日一题 2019 - 05 - 10
题目:
Given a binary tree, return the preorder traversal of its nodes’ values.
Example:
1 | Input: [1,null,2,3] |
Follow up: Recursive solution is trivial, could you do it iteratively?
解法:
这个题让求出二叉树的先序遍历(不使用递归),由于前面已经写过二叉树的层次遍历,所以在写这个先序遍历非递归时候,不是很吃力;
整体来说,解法就是使用数据结构栈,每一次先存放当前节点的右子树再存放左子树,因为访问的时候是率先访问左子树的,而栈又是先进后出,所以要先放右再放左,每次弹出栈中最上层元素,直到栈为空,即为完成遍历;
代码:
1 | /** |