题目1
题目2
概念:
前序遍历:跟-->左-->右
中序遍历:左-->跟-->右
后序遍历:左-->右-->跟
题解:套递归的模板
模板
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> ans = new ArrayList<>();
if(root==null){
return ans;
}
dfs(root, ans);
return ans;
}
private void dfs(TreeNode root, List<Integer> ans) {
//前
//ans.add(root.val);
if(root.left != null) {
dfs(root.left, ans);
}
//中
//ans.add(root.val);
if (root.right != null) {
dfs(root.right, ans);
}
//后
//ans.add(root.val);
}
前序
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> ans = new ArrayList<>();
if(root==null){
return ans;
}
dfs(root, ans);
return ans;
}
private void dfs(TreeNode root, List<Integer> ans) {
ans.add(root.val);
if(root.left != null) {
dfs(root.left, ans);
}
if (root.right != null) {
dfs(root.right, ans);
}
}
中序
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> ans = new ArrayList<>();
if(root==null){
return ans;
}
dfs(root, ans);
return ans;
}
private void dfs(TreeNode root, List<Integer> ans) {
if(root.left != null) {
dfs(root.left, ans);
}
ans.add(root.val);
if (root.right != null) {
dfs(root.right, ans);
}
}
备注
本文正在参与「掘金 2021 春招闯关活动」, 点击查看。