题解 | #求二叉树的前序遍历#
求二叉树的前序遍历
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); // 遍历右子树 } }
二叉树的前序遍历、中序遍历、后序遍历,前中后代表的是根节点的递归顺序,剩余节点都是从左往右遍历。
比如前序遍历,表示根节点会优先遍历(根节点在前),从左往右,一颗树的根节点永远在左子树前,左子树又永远在右子树前;
中序遍历,表示根节点在中,从左往右,一颗树的左子树节点永远在根节点前,根节点又永远在右子树节点前;
后序遍历,表示根节点在后,从左往右,一棵树的左子树节点永远在右子树节点前,右子树节点又永远在左子树节点前;
#二叉树的递归#