栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java实现二叉树的递归遍历(前序遍历、中序遍历、后序遍历)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java实现二叉树的递归遍历(前序遍历、中序遍历、后序遍历)

递归算法的三个要素:

  1. 确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。

  2. 确定终止条件: 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。

  3. 确定单层递归的逻辑: 确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程。

参考链接:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E9%80%92%E5%BD%92%E9%81%8D%E5%8E%86.html

递归实现二叉树的前序遍历:

import java.util.ArrayList;
import java.util.List;


public class PreTraversalTest {
    public List preorderTraversal(TreeNode root){
        List result = new ArrayList<>();
        preorder(root, result);
        return result;
    }



    
    public void preorder(TreeNode root, List result) {
        if(root == null){
            return;
        }

        result.add(root.val);
        preorder(root.left, result);
        preorder(root.right, result);
    }
}

递归实现二叉树的中序遍历:

import java.util.ArrayList;
import java.util.List;


public class InorderTraversalTest {
    public List inorderTraversal(TreeNode root){
        List res = new ArrayList<>();
        inorder(root, res);
        return res;
    }
    
    private void inorder(TreeNode root, List res) {
        if(root == null){
            return;
        }
        inorder(root.left, res);
        res.add(root.val);  // 注意这一句
        inorder(root.right, res);

    }
}

递归实现二叉树的后序遍历:

import java.util.*;


public class PostOrderTraversalTest {
    public List postorderTraversal(TreeNode root){
        List result = new ArrayList<>();
        postorder(root, result);
        return result;
    }

    private void postorder(TreeNode root, List result) {
        if(root == null){
            return;
        }

        postorder(root.left, result);
        postorder(root.right, result);
        result.add(root.val);

    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1021378.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号