重建二叉樹

題目描述
輸入某二叉樹的前序遍歷和中序遍歷的結(jié)果,請重建出該二叉樹。假設(shè)輸入的前序遍歷和中序遍歷的結(jié)果中都不含重復(fù)的數(shù)字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹并返回。

public class Solution {
    public TreeNode reConstructBinaryTree(int [] pre,int [] in) {
 
        int length = pre.length - 1;
        return recursion(pre, 0, length, in, 0, length);
    }
    public TreeNode recursion(int [] pre, int preL, int preR, int [] in, int inL, int inR) {
        
        int val = pre[preL];
        TreeNode node = new TreeNode(val);
        
        if(preL == preR) {
            
            node.left = null;
            node.right = null;
            return node;
        }
        int i = inL;
        for(; i <= inR; i++) {
            
            if(in[i] == val){
                
                break;
            }
        }
        int distance = i - inL;
        if(distance > 0)
            node.left = recursion(pre, preL + 1, preL + distance, in, inL, i - 1);
        if(distance < preR - preL)
            node.right = recursion(pre, preL + distance + 1, preR, in, i + 1, inR);
        
        return node;
    }
    public static void main(String[] args) {
        
        int [] pre = {1,2,4,7,3,5,6,8};
        int [] in = {4,7,2,1,5,3,8,6};
        Solution obj = new Solution();
        obj.reConstructBinaryTree(pre, in);
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目描述: 輸入某二叉樹的前序遍歷和中序遍歷的結(jié)果,請重建出該二叉樹。假設(shè)輸入的前序遍歷和中序遍歷的結(jié)果中都不含重...
    levinhax閱讀 457評論 0 0
  • 題目:輸入某二叉樹的前序遍歷和中序遍歷的結(jié)果,請重建出該二叉樹。假設(shè)輸入的前序遍歷和中序遍歷的結(jié)果中都不含重復(fù)的數(shù)...
    栗栗栗閱讀 2,115評論 2 1
  • 重建二叉樹 題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結(jié)果,請重建出該二叉樹。假設(shè)輸入的前序遍歷和中序遍歷的結(jié)果...
    echoVic閱讀 830評論 0 2
  • 輸入某二叉樹的前序遍歷和中序遍歷的結(jié)果,請重建出該二叉樹。假設(shè)輸入的前序遍歷和中序遍歷的結(jié)果中都不含重復(fù)的數(shù)字。例...
    MAXPUP閱讀 212評論 0 0
  • 輸入某二叉樹的前序遍歷和中序遍歷的結(jié)果,請重建出該二叉樹。假設(shè)輸入的前序遍歷和中序遍歷的結(jié)果中都不含重復(fù)的數(shù)字。例...
    BeijingIamback閱讀 369評論 0 0

友情鏈接更多精彩內(nèi)容