輸入資料報括多行,每行給出一組測試資料,包括兩個整數m,n (1 <= m <= n <= 1000000000)。最後一組測試資料中包括兩個0,表示輸入的結束,這組資料不用處理。如上所示,由正整數1,2,3……組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。
比如,n = 12,m = 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹中共有4個結點。
對於每一組測試資料,輸出一行,該行包含乙個整數,給出結點m所在子樹中包括的結點的數目。
3 7142 6574
2 754
0 03
63498
6 16
6 28
這裡額外樣例,是在寫判斷語句可能遺忘出錯的點
#include#include#includeusing namespace std;
int m,n;
int getn(int i)//當前結點
int main()
return 0;
}
#include #include int nodenum(int m,int n)
if(n<= last ) else
sum = sum; //6 16 型
} else
sum = sum + last - start +1; // 6 14型
return sum;
}int main()
return 0;
}
二叉樹 完全二叉樹的節點數
給定一棵完全二叉樹 最後一層所有節點都在最左側,其餘所有層節點數都為2 h 求其節點數。最簡單的方法就是遍歷一遍,把節點數加起來,但時間複雜度太高。以最左邊的路徑長作為二叉樹的高度,對於乙個節點,如果左子樹高度和右子樹高度一樣,說明左子樹為滿二叉樹,此時把其左子樹的節點數計算出來,加入總數,對右子樹...
統計完全二叉樹的節點數
可以遍歷整棵樹來求出來,但是不是最優解法。這裡給出的是時間複雜度為o h 2 詳情參看 程式設計師 面試指南 p176。package com.gxu.dawnlab algorithm4 統計完全二叉樹的節點數 author junbin 2019年6月30日 public class compl...
完全二叉樹節點數
題目 給定一棵完全二叉樹的頭節點head,返回這棵樹的節點個數。如果完全二叉樹的節點數為n,請實現時間複雜度低於o n 的解法。方法 1 遞迴o n 演算法 int nodenum struct treenode head return 1 nodenum head left nodenum hea...