2025年--Lc217-145. 二叉树的后序遍历(递归版,带测试用例)-Java版

1.题目

在这里插入图片描述
在这里插入图片描述

2.思路

递归的时候不小心把根节点也递归了,导致stackoverflow(栈溢出),应该是添加当前的根节点的值。
后序遍历包括根左右。
(1)定义树节点,包括int val,左节点,右节点。
(2)传入根节点进行递归
(3)另外写1个函数,执行递归逻辑,里面包含从左右根的遍历顺序,并把该结果列表加入根节点的值。
(4)创建树节点进行验证输出。

3.代码实现

输入root=[1,2,3]
输出[2,3,1]

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

class TreeNode{
    int val;
    TreeNode left;
    TreeNode right;
    TreeNode(int val){this.val=val;};
    TreeNode(int val,TreeNode left,TreeNode right){
        this.val=val;
        this.left=left;
        this.right=right;
    };
}

public class postOrder {
    public List<Integer> pT(TreeNode root)
    {
        //结果集合
        List<Integer> res=new ArrayList<>();
        postOrderTree(root,res);
        return res;
    }
    public void postOrderTree(TreeNode root,List<Integer> res)
    {
     if(root==null)
     {
         return ;
     }
     postOrderTree(root.left,res);
     postOrderTree(root.right,res);
     res.add(root.val);//到根节点的时候,直接把根节点加入到结果列表
    }
    public static void main(String[] args)
    {
        TreeNode root=new TreeNode(1);
        root.left=new TreeNode(2);
        root.right=new TreeNode(3);
        postOrder test=new postOrder();
        List<Integer> ans=test.pT(root);
        System.out.println(ans);
    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值