
1 题目描述
给定一个 二叉树 ,返回节点值 先序遍历 数组。
注:勿使用递归,请使用循环解决。
例子:
题目出处:
2 解决思路
使用循环遍历时,按先序遍历规则,遍历根后,需先遍历其左子树,这样循环对左子树递进时,右子树暂时得不到遍历,所以需要将待遍历的右子树先记录下来,而这些右子树中,先记录的后遍历。
如下代码使用nodes slice记录待遍历的右子树,首先,将root整个认为是一个右子树放进去。
若nodes slice不为空,先取nodes slice最后一个节点,遍历其左子树,若右子树不为空,仅将右子树加入nodes slice,循环直至所有左子树遍历完成,然后进入slice的下一次循环,直至slice为空。
3 Golang实现代码
