leetcode145:二叉树的后序遍历

package com.mxnet;

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

public class Solution145 {

    public static void main(String[] args) {

    }

    /**
     * 给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。
     * @param root
     * @return
     * 思路:
     * 1. 后续遍历先遍历左子树,再遍历右子树,最后遍历根节点
     * 2. 使用递归的思路
     *
     */

    ArrayList<Integer> res = new ArrayList<>();
    public List<Integer> postorderTraversal(TreeNode root) {
        //判断节点是否为空
        if (root == null){
            return new ArrayList<>();
        }
        //递归遍历左子树
        if (root.left != null){
            postorderTraversal(root.left);
        }
        //递归遍历右子树
        if (root.right != null){
            postorderTraversal(root.right);
        }
        //将根节点值保存到list中
        if (root != null){
            res.add(root.val);
        }
        return res;
    }
}
posted @ 2022-08-25 21:06  mx_info  阅读(16)  评论(0)    收藏  举报