小米二轮面试编程题:二叉树的前序遍历,要求非递归方式
Posted 坚守梦想
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小米二轮面试编程题:二叉树的前序遍历,要求非递归方式相关的知识,希望对你有一定的参考价值。
思路如下,使用栈,每次把当前节点入栈,然后右子节点入栈,左子节点入栈。
代码如下:
import java.util.*; public class Solution { ArrayList<Integer> list = new ArrayList<Integer>(); public ArrayList<Integer> preorderTraversal(TreeNode root) { if(root == null) return list; Stack<TreeNode> stack = new Stack<TreeNode>(); stack.push(root); while(!stack.isEmpty()){ TreeNode temp = stack.pop(); list.add(temp.val); if(temp.right != null) stack.push(temp.right); if(temp.left != null) stack.push(temp.left); } return list; } }
以上是关于小米二轮面试编程题:二叉树的前序遍历,要求非递归方式的主要内容,如果未能解决你的问题,请参考以下文章