zoukankan      html  css  js  c++  java
  • 106. Construct Binary Tree from Inorder and Postorder Traversal

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

    Note:
    You may assume that duplicates do not exist in the tree.

    Hide Company Tags
     Microsoft
    Show Tags
    Hide Similar Problems
     
    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public TreeNode buildTree(int[] inorder, int[] postorder) {
            return buildSubTree(0, postorder.length -1, postorder, inorder, 0, postorder.length-1);
        }
        public TreeNode buildSubTree(int postLeft, int postRight, int[] postorder, int[] inorder, int inLeft, int inRight){
            if(postRight < postLeft || inLeft > inRight) return null;
            int mid = inLeft;
            TreeNode root = new TreeNode(postorder[postRight]);
            while(mid <= inRight){
                if(postorder[postRight] == inorder[mid]){
                    root.left = buildSubTree(postLeft, postRight+mid-inRight -1 , postorder, inorder, inLeft, mid-1);
                    root.right = buildSubTree(postRight+mid-inRight, postRight -1, postorder, inorder, mid+1, inRight);
                }
                mid++;
            }
            return root;
        }
    }
  • 相关阅读:
    js 鸭式辨型法
    javascript performence
    js继承实现
    js深入理解构造函数和原型对象
    js 变量类型
    JS 严格模式
    鼠标滚动事件
    css3-transform
    js.map error
    canvas(一) 基本线条绘制
  • 原文地址:https://www.cnblogs.com/joannacode/p/5955089.html
Copyright © 2011-2022 走看看