[leetcode-二叉树先序遍历]--144.Binary Tree Preorder Traversal

Question 144. Binary Tree Preorder Traversal

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

给定一个二叉树,返回先序遍历

下面先给出二叉树结点的定义, 这里为了代码实现方便,属性域我全部都用public修饰了。

public class TreeNode {
    public int val;
    public TreeNode left;
    public TreeNode right;
    public TreeNode(int x) { val = x; }
}

对于本题二叉树的遍历,这里直接用递归。

/**
 * 用递归实现先序遍历: 根->左->右
 * @param root
 * @return
 */
public static List preorderTraversal(TreeNode root) {
    List pre = new ArrayList();
    preHelper(root,pre);
    return pre;
}

private static void preHelper(TreeNode root, List pre) {
    if(root==null) return;
    pre.add(root.val);
    preHelper(root.left,pre);
    preHelper(root.right,pre);
}

由于需要一个返回值,所以我用了一个私有函数来执行。

本文完整代码 github地址:
https://github.com/leetcode-hust/leetcode/blob/master/louyuting/src/leetcode/Question144.java

你可能感兴趣的:(leetcode,leetcode与算法)