劍指Offer 我用JAVA做(三

2021-08-02 08:29:26 字數 1533 閱讀 4471

/**

* 題目描述:

* 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。

* 假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。

* 例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。

* @author [email protected]

*/public class day04 ;

int inorder=;

binarytreenode root=reconstructtree(preorder,inorder);

system.out.println("先序輸出:");

printpre(root);

system.out.println();

system.out.println("中序輸出:");

printin(root);

system.out.println();

system.out.println("後序輸出:");

printbe(root);

}private static binarytreenode reconstructtree(int preorder, int inorder)

//進行遞迴構造

root.setright(reconstructtree(newpreorder,newinorder));

} return root;

} /**

* 先序輸出

* @param tree

*/private static void printpre(binarytreenode tree)

} /**

* 中序輸出

* @param tree

*/private static void printin(binarytreenode tree)

} /**

* 後序輸出

* @param tree

*/private static void printbe(binarytreenode tree) }}

/** * 二叉樹節點類定義

* * @author [email protected]

* @date 2023年6月8日 下午4:46:12

*/class binarytreenode

public binarytreenode(int value, binarytreenode left, binarytreenode right)

public int getvalue()

public void setvalue(int value)

public binarytreenode getleft()

public void setleft(binarytreenode left)

public binarytreenode getright()

public void setright(binarytreenode right)

}

劍指offer 不用加減乘除做加法(java)

題目 寫乙個函式,求兩個整數之和,要求在函式體內不得適用 四則運算符號 面試的時候被問道這個問題,首先我們分析人們是如何進行十進位制的加法的,比如如何得出5 17 22這個結果的,實際上,我們可以分三步進行 第一步只做各位相加不進製,此時相加的結果是12,第二步做進製,5 7中有進製,進製的值為10...

劍指offer 醜數(Java)

題目 我們把只包含因子2 3和5的數稱作醜數 ugly number 求按從小到大的順序的第1500個醜數。例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做第乙個醜數。思路 直觀思路 從1開始逐一判斷每個整數是否為醜數,直到找到第n個醜數,時間效率太低。因為對於每乙個整數都要計算...

劍指offer 第三波

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 解題思路 有兩點需要注意的,一是可以再新增乙個函式,該函式用於判斷兩子樹以當前點作為根節點是否相互包含。另外需要注意的是,遞迴的部分可以做一點優化,如果左子樹已經包含了proot2,則可以不用再判斷右子樹而直接得...