博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
106. Construct Binary Tree from Inorder and Postorder Traversal
阅读量:6702 次
发布时间:2019-06-25

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

Given inorder and postorder traversal of a tree, construct the binary tree.

Note:
You may assume that duplicates do not exist in the tree.
For example, given

inorder = [9,3,15,20,7]postorder = [9,15,7,20,3]Return the following binary tree:    3   / \  9  20    /  \   15   7

难度:medium

题目:给定二叉树中序及后序遍历,构造二叉树,注意二叉树中的结点不重复。

思路;分治。

  1. 从后序遍历数组中由后向前取结点r
  2. 在中序遍历中找到r的位置,并由此结点分成两部分,继续执行1.

Runtime: 4 ms, faster than 68.02% of Java online submissions for Construct Binary Tree from Inorder and Postorder Traversal.

Memory Usage: 37.6 MB, less than 42.45% of Java online submissions for Construct Binary Tree from Inorder and Postorder Traversal.

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {    public TreeNode buildTree(int[] inorder, int[] postorder) {        if (null == postorder || postorder.length < 1) {            return null;        }                return buildTree(inorder, 0, inorder.length - 1, postorder, postorder.length - 1);    }        public TreeNode buildTree(int[] inorder, int start, int end, int[] postorder, int idx) {        if (start > end || idx < 0) {            return null;        }                   TreeNode root = new TreeNode(postorder[idx]);        int rIdx = start;        for (; rIdx <= end; rIdx++) {            if (inorder[rIdx] == postorder[idx]) {                break;            }        }                root.left = buildTree(inorder, start, rIdx - 1, postorder, idx - (end - rIdx) - 1);        root.right = buildTree(inorder, rIdx + 1, end, postorder, idx - 1);                return root;    }}

转载地址:http://vnwlo.baihongyu.com/

你可能感兴趣的文章
JDK1.8 ArrayList部分源码分析小记
查看>>
R语言机器学习框架h2o基础学习教程
查看>>
java9系列(二)docker运行java9
查看>>
JSON的理解
查看>>
LeetCode: Binary Tree Maximum Path Sum
查看>>
1.平凡之路-ORM概述
查看>>
Electron(1.6.11) + koa2 仿腾讯TGP游戏登录器(一):环境部署
查看>>
es8的字符串填充、关于对象、关于函数
查看>>
开源情报订阅OpenTaxii+mysql+nginx 配置教程
查看>>
关于$.Callbacks()传参问题
查看>>
专注服务,而非容器
查看>>
关于css命名的一点思考,探讨一下css命名空间的可行性
查看>>
CSS进阶篇--你用过css3的这个currentColor新属性吗?使用与兼容性
查看>>
[MachineLearing]6步进入机器学习领域(译)
查看>>
二列布局
查看>>
AdminLTE For Laravel 后台模板
查看>>
magento2开发,你可能需要补充的知识点
查看>>
字母和数字键的键码值(keyCode)
查看>>
Gradle之恋-Init插件
查看>>
获得包含中英文字符串的自然长度
查看>>