国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

劍指offer【7】:重建二叉樹

?xiaoxiao, / 1897人閱讀

摘要:例如,輸入前序遍歷序列和中序遍歷序列,則重建二叉樹并返回。題解對二叉樹前序中序遍歷的考察,采用遞歸的方法解決問題,難點是確定每一個子樹的臨界點。

題目

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果都不含重復的數字。例如,輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹并返回。

題解

對二叉樹前序、中序遍歷的考察,采用遞歸的方法解決問題,難點是確定每一個子樹的臨界點。

public class Solution {
    private Map map = new HashMap<>();
    public TreeNode reConstructBinaryTree(int [] pre,int [] in) {
        
        for(int i = 0; i< in.length; i++){
            map.put(in[i], i);
        }
        
        return reConstructBinaryTree(pre, 0, pre.length-1,0);
        
    }
    
    public TreeNode reConstructBinaryTree(int [] pre, int preL, int preR, int inL){
        //【易錯點】=不可以寫,等于說明存在一個節點
        if(preL > preR){
            return null;
        }
        TreeNode root = new TreeNode(pre[preL]);
        int index = map.get(pre[preL]);
        int k = index - inL;
        root.left = reConstructBinaryTree(pre, preL+1, preL+k, inL);
        root.right = reConstructBinaryTree(pre, preL+k+1, preR, index+1);
        return root;
    }
    
    
}

class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;
    
    TreeNode(int x) { val = x; }
}
注意點
    if(preL > preR){
        return null;
    }

這里判斷條件不能有等于,等于相當于該子樹只有一個節點

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75565.html

相關文章

  • 劍指offer】4.叉樹的遍歷和重建

    摘要:第一行為前序遍歷,第二行為中序遍歷。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹并返回。根據前序遍歷和中序遍歷的結果可以拿到左子中序遍歷和右側為右子樹中序遍歷左子樹的前序遍歷和右子樹的前序遍歷然后遞歸左子樹和右子樹的完成重建。 二叉樹簡介 基本結構: function TreeNode(x) { this.val = x; this.left = null; ...

    zhangyucha0 評論0 收藏0
  • #yyds干貨盤點#劍指 Offer 07. 重建叉樹

    摘要:題目輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。例如,給出前序遍歷中序遍歷返回如下的二叉樹限制節點個數答案要使用這個方法,首先要將一個原始的數組,從下標開始復制,復制到上標不包括,生成一個新的數組。 題目輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不...

    paney129 評論0 收藏0
  • 劍指Offer---根據前序遍歷和中序遍歷重建叉樹

    摘要:例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹并返回。代表前序數組,代表中序數組。中序遍歷的左右子樹比較好找,但是前序遍歷的左右子樹想到比較難找。 jdk 版本: jdk 1.8 題目:輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,...

    tainzhi 評論0 收藏0
  • PHPer面試必看:分門別類帶你擼《劍指Offer》之叉樹

    摘要:例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹并返回。操作給定的二叉樹,將其變換為源二叉樹的鏡像。劍指中還有一道類似的變種題目,就是下面的這道,之字形遍歷二叉樹。最后下面的兩道題目分別運用了二叉樹先序中序遍歷算法。 開篇 以下內容可能偏應試但很好理解,所以大家一定要堅持看下去,因為我們變強的過程注定孤獨的,堅持下來就會看到明天的太陽。 回顧 showImg(https://user-...

    li21 評論0 收藏0
  • 劍指offer(javascript版)

    摘要:二維數組中的查找在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹并返回。 1.二維數組中的查找 在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數...

    imtianx 評論0 收藏0

發表評論

0條評論

?xiaoxiao,

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<