溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何算出python二叉樹的前序遍歷和中序遍歷

發(fā)布時間:2021-12-13 15:27:19 來源:億速云 閱讀:145 作者:柒染 欄目:大數(shù)據(jù)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)如何算出python二叉樹的前序遍歷和中序遍歷,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

思路:看見二叉樹的算法題首先想到的就是 遍歷

既然給定了前序遍歷和中序遍歷 ,那我就每次算出左子樹的前序遍歷和中序遍歷 ,右子樹的前序遍歷和中序遍歷

主程序

int len = pre.length;

if(len == 0){

    return null;

}
else{

    TreeNode  tnode = new TreeNode(pre[0]);

    int loc = getindex(pre[0], in);

   int[] preL = getsubarr(1, loc, pre);  // 左子樹的前序遍歷

    int[] preR = getsubarr(0, loc-1, in); // 左子樹的中序遍歷  兩者的長度相等

    int[] inL = getsubarr(loc+1,len-1, pre);  // 右子樹的前序遍歷

    int[] inR = getsubarr(loc+1,len-1, in); // 右子樹的中序遍歷  兩者的長度相等

    tnode.left = getarr(preL, preR);

     tnode.right = getarr(inL, inR);

    return tnode;

}

# 定義一個 給定序列和目標值,找到目標值在序列中的索引的函數(shù)

public int  getindex(int target,  int[] array){

    int len = array.length;

    for(int i=0; i< len; i++){

        if(target == array[i];

        return i

}

}

定義一個給定 數(shù)組 起始 和終止 下標 給出該數(shù)組相應(yīng)的字段

public int[] getsubarr(int start, int end, int[] arr){

    int[] sub = new int[end-start+1];

    for(int i=start; i<=end; i++){

        sub[i-start] = arr[i]

}

return sub;

}

上述就是小編為大家分享的如何算出python二叉樹的前序遍歷和中序遍歷了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI