Java练习(21)
ps:题目来自力扣
二叉树的前序遍历
给你二叉树的根节点 root
,返回它节点值的 前序 遍历。
import java.util.ArrayList;
import java.util.List;
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) {
this.val = val;
}
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList<>();
preorder(root, result);
return result;
}
private void preorder(TreeNode node, List<Integer> result) {
if (node == null) {
return;
}
// 先访问根节点
result.add(node.val);
// 递归遍历左子树
preorder(node.left, result);
// 递归遍历右子树
preorder(node.right, result);
}
}