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);}}
