博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode]Construct Binary Tree from Preorder and Inorder Traversal
阅读量:4964 次
发布时间:2019-06-12

本文共 1030 字,大约阅读时间需要 3 分钟。

用递归比较方便。

public class Solution {    public TreeNode buildTree(int[] preorder, int[] inorder) {        if (preorder.length != inorder.length) return null;        return buildTree(preorder, 0, preorder.length,                inorder, 0, inorder.length);            }        private TreeNode buildTree(int[] preorder, int ps, int pe,        int[] inorder, int is, int ie)    {        if (pe-ps == 0) return null;        TreeNode node = new TreeNode(preorder[ps]);        int c = -1;        for (c = is; c < ie; c++)        {            if (inorder[c] == preorder[ps]) break;        }        // split into two parts        int l_ps = ps+1;        int l_pe = ps+1+c-is;        int l_is = is;        int l_ie = c;        node.left = buildTree(preorder, l_ps, l_pe, inorder, l_is, l_ie);        int r_ps = ps+1+c-is;        int r_pe = pe;        int r_is = c+1;        int r_ie = ie;        node.right = buildTree(preorder, r_ps, r_pe, inorder, r_is, r_ie);        return node;    }}

  

转载于:https://www.cnblogs.com/lautsie/p/3298741.html

你可能感兴趣的文章
2124: 等差子序列 - BZOJ
查看>>
字符串匹配算法综述
查看>>
Linux centosVMware shell 管道符和作业控制、shell变量、环境变量配置文件
查看>>
【设计模式】工厂模式
查看>>
两个表格中数据不用是一一对应关系--来筛选不同数据,或者相同数据
查看>>
客户数据库出现大量cache buffer chains latch
查看>>
機械の総合病院 [MISSION LEVEL: C]
查看>>
实战练习细节(分行/拼接字符串/字符串转int/weak和copy)
查看>>
Strict Standards: Only variables should be passed by reference
查看>>
hiho_offer收割18_题解报告_差第四题
查看>>
AngularJs表单验证
查看>>
静态方法是否属于线程安全
查看>>
02号团队-团队任务3:每日立会(2018-12-05)
查看>>
SQLite移植手记1
查看>>
js05-DOM对象二
查看>>
mariadb BINLOG_FORMAT = STATEMENT 异常
查看>>
C3P0 WARN: Establishing SSL connection without server's identity verification is not recommended
查看>>
iPhone在日本最牛,在中国输得最慘
查看>>
动态方法决议 和 消息转发
查看>>
js 基础拓展
查看>>