[路飞]_125.二叉树的后序遍历

139 阅读1分钟

「这是我参与11月更文挑战的第13天,活动详情查看:2021最后一次更文挑战

LeetCode145.二叉树的后序遍历

题目要求

给定一个二叉树,返回他的 后序遍历

输入: [1,null,2,3]     
   1    
    \     
     2    
    /   
   3 
​输出: [3,2,1]
思路

首先题目要求我们是返回他的后序遍历,我们先来了解一下什么是后序遍历,后序遍历就是,按照左边的子节点右边的子节点父节点这样的一个顺序遍历就是后序遍历;

1.当我们拿到题目给的root的时候要遍历,得到他的后序遍历结果就需要按照定义递归他的左节点,然后右节点这个顺序,如果root为null就结束掉这一次的递归。
let rec = function (root) {  
    if (root == null) return;  
    rec(root.left);  
    rec(root.right);
}
2.将root节点的值放到res空数组里面即可
let res = [];
let rec = function (root) {  
    ...  
    res.push(root.val);
}
rec(root);
return res;

完整代码

var postorderTraversal = function(root) {    
    let res = [];​    
    let rec = function (root){        
    if (root == null) return;        
        rec(root.left);        
        rec(root.right);        
        res.push(root.val);    
    }​    
    rec(root);    
    return res;
};