zoukankan      html  css  js  c++  java
  • 43: Construct Binary Tree from Preorder and Inorder Traversal

    /************************************************************************/
                /*       43:  Construct Binary Tree from Preorder and Inorder Traversal                            */
                /************************************************************************/
                /*
                 * Given preorder and inorder traversal of a tree, construct the binary tree.
                 *
                 * Note:
    You may assume that duplicates do not exist in the tree.

                 * */
                
                /*** 递归做法*********************/
                /*
                 * 关键的地方在于:
                 *
                 * 在前序遍历的序列里,同时对左子树和右子树进行递归得到一个节点的左右节点
                 * */

    public TreeNode buildTreeByPre_In(int[] preorder, int[] inorder)
                {
                     return helper(0, 0, inorder.length - 1, preorder, inorder);
                }
                
                private  TreeNode helper(int preStart, int inStart, int inEnd, int[] preorder, int[] inorder) {
                    if (preStart > preorder.length - 1 || inStart > inEnd) {
                        return null;
                    }
                    TreeNode root = new TreeNode(preorder[preStart]);
                    int inIndex = 0; // Index of current root in inorder
                    for (int i = inStart; i <= inEnd; i++) {
                        if (inorder[i] == root.val) {
                            inIndex = i;
                            break;
                        }
                    }
                    root.left = helper(preStart + 1, inStart, inIndex - 1, preorder, inorder);
                    root.right = helper(preStart + inIndex - inStart + 1, inIndex + 1, inEnd, preorder, inorder);
                    return root;
                }



  • 相关阅读:
    SQL优化索引
    如何减轻工作压力(一)
    奥巴马对美国影响最大的十句话
    10种职场潜规则
    Linux中的7件武器详解
    linux时间同步,ntpd、ntpdate
    Style中Position属性详解
    vsftp配置大全超完整版
    Linux 技巧:使用 screen 管理你的远程会话
    MySQL下mysql.sock丢失问题的解决
  • 原文地址:https://www.cnblogs.com/theonemars/p/4254336.html
Copyright © 2011-2022 走看看