day47(12.28)——leetcode面试经典150

106. 从中序与后序遍历序列构造二叉树

106. 从中序与后序遍历序列构造二叉树

我感觉我的数据结构都要忘光光了

题目:

题解:

java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public Map<Integer,Integer> map = new HashMap<>();
    public int[] postorder;
    public TreeNode buildTree(int[] inorder, int[] postorder) {
        for(int i=0;i<inorder.length;i++) {
            map.put(inorder[i], i);
        }
        this.postorder = postorder;
        return recur(0,inorder.length-1,0,postorder.length-1);
    }

    public TreeNode recur(int left, int right, int l,int r) {
        if(left > right || l > r) {
            return null;
        }
        int root = postorder[r];
        int i = map.get(root);

        TreeNode node = new TreeNode(root);
        node.left = recur(left, i-1, l, l+i-1-left);
        node.right = recur(i+1, right, l+i-left, r-1);
        return node;
    }
}
相关推荐
qq_85730581911 分钟前
python语法
开发语言·python·算法
DXM052128 分钟前
第9期|从机器学习到深度学习:AI遥感解译的进化逻辑
人工智能·算法·计算机视觉
小蒋学算法36 分钟前
算法-阶乘函数后K个零
算法
weixin_3077791342 分钟前
智能模拟数据生成平台:生成式AI合成数据技术重塑开发测试效能
人工智能·测试工具·算法·测试用例
羊羊小栈2 小时前
Uplift营销供应链协同决策系统(基于Uplift因果推断与运筹优化算法)
前端·人工智能·算法·毕业设计·大作业
Tenaryo2 小时前
「底层系统基石 · 缓存篇」V —— 写策略、Store Buffer 与内存屏障
后端·面试
金融小师妹2 小时前
AI因子共振模型显示:金银比突破区间上沿,白银定价逻辑进入再校准阶段
人工智能·算法·均值算法·线性回归
J2虾虾2 小时前
C语言 typedef 用法
c语言·数据结构·算法
hunterkkk(c++)2 小时前
线段树例题
算法
故渊at3 小时前
第二板块:Android 四大组件标准化学理 | 第七篇:Activity 页面载体与任务栈算法
android·算法·生命周期·activity·任务栈