LeetCode-Binary Tree Preorder Traversal

来源:互联网 发布:人工智能 医案 编辑:程序博客网 时间:2024/06/07 14:52

作者:disappearedgod
文章出处:http://blog.csdn.net/disappearedgod/article/details/26710235
时间:2014-5-23



题目

Binary Tree Preorder Traversal

 Total Accepted: 18831 Total Submissions: 54020My Submissions

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].

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

/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */


解法


递归

public class Solution {    public static ArrayList<Integer> list = new ArrayList<Integer>();    public ArrayList<Integer> preorderTraversal(TreeNode root) {        list.clear();        if(root==null)            return list;        preorder(root);        return list;    }    public void preorder(TreeNode root){        if(root == null)            return;        list.add(root.val);        preorder(root.left);        preorder(root.right);    }    }

public ArrayList<Integer> preorderTraversal(TreeNode root) {        ArrayList<Integer> retlist = new ArrayList<Integer>();        return preorderTraversal(root,retlist);    }    public ArrayList<Integer> preorderTraversal(TreeNode root, ArrayList<Integer> retlist) {        if(root == null)            return retlist;                ArrayList<Integer> addlist = new ArrayList<Integer>();        addlist.add(root.val);        retlist.addAll(addlist);        preorderTraversal(root.left,retlist);        preorderTraversal(root.right,retlist);        return retlist;    }







返回

LeetCode Solution(持续更新,java>c++)
0 0