【leetcode】94. Binary Tree Inorder Traversal【java】

来源:互联网 发布:云计算 搭建 openstack 编辑:程序博客网 时间:2024/05/22 15:42

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

For example:
Given binary tree [1,null,2,3],

   1    \     2    /   3

return [1,3,2].

Note: Recursive solution is trivial, could you do it iteratively?

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public List<Integer> inorderTraversal(TreeNode root) {        //非递归 中序遍历二叉树 (先左子树  再根节点  再右子树)        List<Integer> list =new ArrayList();        Stack<TreeNode> stack=new Stack();        if(root==null) return list;        while(root!=null){            stack.push(root);            root=root.left;            while(root==null){                if(stack.empty()) {                    return list;                }                root=stack.pop();                list.add(root.val);                root=root.right;            }        }        return list;        //递归 中序遍历二叉树        /*List<Integer> list = new ArrayList();        addNode(list, root);        return list;    }    public void addNode(List<Integer> list, TreeNode root){        if (root == null){            return;        }        addNode(list, root.left);        list.add(root.val);        addNode(list, root.right);**/    }}

非递归  2017-1-1更改

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



0 0
原创粉丝点击