1,问题简述
给定一个二叉树,返回它的 后序 遍历。
2,示例
输入: [1,null,2,3]
1
\
2
/
3
输出: [3,2,1]
3,题解思路
使用递归的方式进行解决
4,题解程序
import java.util.ArrayList;
import java.util.List;
public class PostorderTraversalTest2 {
public static void main(String[] args) {
TreeNode t1 = new TreeNode(1);
TreeNode t2 = new TreeNode(2);
TreeNode t3 = new TreeNode(3);
t1.right = t2;
t2.left = t3;
List<Integer> list = postorderTraversal(t1);
System.out.println("list = " + list);
}
private static List<Integer> list = new ArrayList<>();
public static List<Integer> postorderTraversal(TreeNode root) {
if (root == null) {
return list;
}
dfs(root);
return list;
}
private static void dfs(TreeNode root) {
if (root.left != null) {
dfs(root.left);
}
if (root.right != null) {
dfs(root.right);
}
list.add(root.val);
}
}
5,题解程序图片版
6,总结一下
写到这里自己不知道写什么了,也不知道想给需要的读者表达了什么,可能有点累了,因为现在已经是很晚的时间了,还在写程序,说点什么呢?读过我文章的读者应该都知道我一般写文章都没有很多的注释性文字说明,我觉得代码本身具有注释性,除非是分析源码的文章会有过多的文字说明,写到这大部分题都是基本的逻辑思维题,不涉及很复杂的实现,就没有进行过多的文字说明,需要的可以在留言板进行讨论,目前开启了读者讨论这个功能,需要的可以留言进行沟通一下你的想法,这样可以更好的交流,那么有问题欢迎你讨论,下方留言讨论吧