非递归遍历二叉树

来源:互联网 发布:mac出现文件夹问号 编辑:程序博客网 时间:2024/06/05 18:20

Given a binary tree, return the preorder traversal of its nodes' values.

For example:
Given binary tree {1,#,2,3},

   1    \     2    /   3

return [1,2,3].

题目连接:https://oj.leetcode.com/problems/binary-tree-preorder-traversal/

/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public List<Integer> preorderTraversal(TreeNode root) {  List<Integer> list= new ArrayList<Integer>();  Stack<TreeNode> stack =new Stack<TreeNode>();  if(root==null) return list;  stack.push(root);  while(!stack.isEmpty()){  TreeNode  tree=stack.pop();  list.add(tree.val);  if(tree.right!=null){  stack.push(tree.right);  }  if(tree.left!=null){  stack.push(tree.left);  }  }  return list;       }}


0 0