Leetcode 二叉树中序遍历 前序遍历 后序遍历(递归)

中序遍历:

java 复制代码
/**
 * 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> inorderTraversal(TreeNode root) {
        List<Integer> tree=new ArrayList<>(); //建立一个动态数组
        inorder(root,tree); //调用递归函数,实参
        return tree;

    }

    public void inorder(TreeNode root, List<Integer> tree){
        // TreeNode root,List<Interger> tree都是传入的形参
        if(root==null){
            return;
        }
        inorder(root.left,tree);  //遍历左子树
        tree.add(root.val); //将当前值加入动态数组中
        inorder(root.right,tree); //遍历右子树

    }
    
}

前序遍历

java 复制代码
class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
            List<Integer> tree =new ArrayList<Integer>();
            PreOrder(root,tree);
            return tree;

    }

    public void PreOrder(TreeNode root, List<Integer> tree){
        if(tree==null){
        return;}
        tree.add(root.val);
        PreOrder(root.left,tree);
        PreOrder(root.right,tree);
    


    }





}

}

后序遍历

java 复制代码
class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
            List<Integer> tree =new ArrayList<Integer>();
            PostOrder(root,tree);
            return tree;

    }

    public void PostOrder(TreeNode root, List<Integer> tree){
        if(tree==null){
        return;}
        PostOrder(root.left,tree);
        PostOrder(root.right,tree);
        tree.add(root.val);
    


    }





}

}
相关推荐
姓蔡小朋友1 天前
算法-双指针
算法
D_FW1 天前
数据结构第三章:栈、队列与数组
数据结构·算法
Tisfy1 天前
LeetCode 1339.分裂二叉树的最大乘积:深度优先搜索(一次DFS+存数组并遍历)
算法·leetcode·深度优先·题解
csdn_aspnet1 天前
MATLAB 高效算法实战:数据分析与算法优化的效率秘诀
算法·matlab·数据分析
budingxiaomoli1 天前
优选算法--链表
数据结构·算法·链表
测试秃头怪1 天前
支付宝性能测试案例分析详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·性能测试
漫随流水1 天前
leetcode算法(637.二叉树的层平均值)
数据结构·算法·leetcode·二叉树
漫随流水1 天前
leetcode算法(102.二叉树的层序遍历)
数据结构·算法·leetcode·二叉树
源代码•宸1 天前
Leetcode—1339. 分裂二叉树的最大乘积【中等】
开发语言·后端·算法·leetcode·golang·dfs