[刷题]Binary Tree Inorder Traversal

来源:互联网 发布:单片机公司有哪些 编辑:程序博客网 时间:2024/06/04 19:04

[LintCode]Binary Tree Inorder Traversal

VERSION I Divide & Conquer

/** * Definition of TreeNode: * public class TreeNode { *     public int val; *     public TreeNode left, right; *     public TreeNode(int val) { *         this.val = val; *         this.left = this.right = null; *     } * } */public class Solution {    /**     * @param root: The root of binary tree.     * @return: Inorder in ArrayList which contains node values.     */    public ArrayList<Integer> inorderTraversal(TreeNode root) {        // 2015-3-22 DFS        ArrayList<Integer> rst = new ArrayList<>();        if (root == null) {            return rst;        }                // divide        ArrayList<Integer> left = inorderTraversal(root.left);        ArrayList<Integer> right = inorderTraversal(root.right);                // conquer        rst.addAll(left);        rst.add(root.val);        rst.addAll(right);                return rst;    }}

VERSION II Recursion

/** * Definition of TreeNode: * public class TreeNode { *     public int val; *     public TreeNode left, right; *     public TreeNode(int val) { *         this.val = val; *         this.left = this.right = null; *     } * } */public class Solution {    /**     * @param root: The root of binary tree.     * @return: Inorder in ArrayList which contains node values.     */    public ArrayList<Integer> inorderTraversal(TreeNode root) {        // 2015-4-1 recursion        ArrayList<Integer> rst = new ArrayList<>();        if (root == null) {            return rst;        }                rst.addAll(inorderTraversal(root.left));        rst.add(root.val);        rst.addAll(inorderTraversal(root.right));                return rst;    }}


0 0
原创粉丝点击