题解 | #求二叉树的前序遍历#
求二叉树的前序遍历
https://www.nowcoder.com/practice/501fb3ca49bb4474bf5fa87274e884b4
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param root TreeNode类
* @return int整型ArrayList
*/
public ArrayList<Integer> preorderTraversal (TreeNode root) {
ArrayList<Integer> res = new ArrayList<>();
traversal(res, root); // 遍历逻辑
return res;
}
public void atraversal(ArrayList<Integer> list, TreeNode root) {
if (root == null) {
return;
}
list.add(root.val); // 优先遍历根节点
a(list, root.left); // 遍历左子树
a(list, root.right); // 遍历右子树
}
}
二叉树的前序遍历、中序遍历、后序遍历,前中后代表的是根节点的递归顺序,剩余节点都是从左往右遍历。
比如前序遍历,表示根节点会优先遍历(根节点在前),从左往右,一颗树的根节点永远在左子树前,左子树又永远在右子树前;
中序遍历,表示根节点在中,从左往右,一颗树的左子树节点永远在根节点前,根节点又永远在右子树节点前;
后序遍历,表示根节点在后,从左往右,一棵树的左子树节点永远在右子树节点前,右子树节点又永远在左子树节点前;
#二叉树的递归#
查看7道真题和解析