該算法用於逐級打印普通二叉樹。該函數用於按級別打印二叉樹級別的時間和空間複雜度
什麼是printSpecificLevel_BT()
和printBT_LBL()
的時間複雜度和空間複雜度?
我認爲printSpecificLevel_BT
的時間複雜度爲O(lg N)
,空間複雜度爲O(lg N)
。
我認爲printBT_LBL()
的時間複雜度爲O((lgN)^2)
,空間複雜度爲O((lgN)^2)
。
這是正確的嗎?
// Print the specific level of a binary tree.
public static void printSpecificLevel_BT (Node root, int level) {
if (root == null) return;
if (level == 0) System.out.print(String.format("%-6d", root.data)); // Base case.
// Do recrusion.
printSpecificLevel_BT(root.leftCh, level - 1);
printSpecificLevel_BT(root.rightCh, level - 1);
}
// Get the height of a binary tree.
public static int getHeight_BT (Node root) {
if (root == null || (root.leftCh == null && root.rightCh == null)) return 0; // Base case.
return 1 + Math.max (getHeight_BT(root.leftCh), getHeight_BT(root.rightCh));
}
// Print a binary tree level by level.
public static void printBT_LBL (Node root) {
// Get the height of this binary tree.
int height = getHeight_BT(root);
for (int i = 0; i <= height; i ++) {
printSpecificLevel_BT(root, i);
System.out.println();
}
}
什麼*你*覺得它是什麼? –
我認爲「printSpecificLevel_BT」的時間複雜度= O(lgN),空間複雜度= O(lgN)。 「printBT_LBL()」的時間複雜度= O((lgN)^ 2),空間複雜度= O((lgN)^ 2)。 – zproject89