标签搜索

目 录CONTENT

文章目录

【算法模板】 树遍历

陈铭
2022-02-04 / 0 评论 / 0 点赞 / 145 阅读 / 201 字 / 正在检测是否收录...

例题:二叉树的前序遍历

力扣144题为例:
给你二叉树的根节点 root ,返回它节点值的 前序 遍历。
##示例:

image

输出:[1,2,3]


/**
 * Definition for a binary tree node.
 * public 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) {
        ArrayList<Integer> list = new ArrayList<>();
        pre(root,list);
        return list;
    }

    private void pre(TreeNode root, ArrayList<Integer> list) {
        if (root==null){
            return;
        }
		// 套路:遍历元素 --> 递归左节点 --> 递归右节点
        list.add(root.val);
        pre(root.left,list);
        pre(root.right,list);
		// 中序则是,能够保持从小带大遍历
		// pre(root.left,list);
		// list.add(root.val);
        // pre(root.right,list);
		// 后序则是
		// pre(root.left,list);
        // pre(root.right,list);
		// list.add(root.val);
    }
}
0

评论区