蜻蜓FM2023年校招筆試題目 規則二叉樹

2021-07-04 11:49:51 字數 752 閱讀 4487

題目:某規則二叉樹的定義是:對於樹中任意兩個葉結點a、b,他們與根結點的距離分別是d1和d2,|d1-d2|<=1。請寫出函式 bool isruledtree(node *root)的**實現。如果該二叉樹為規則樹,則返回true,否則返回false。

思路:其實就是比較所有葉結點的深度,最大值和最小值之間相差不超過1,則為規則樹,可以遍歷所有的結點,如果碰到葉結點,記錄該葉結點的深度到陣列或任意什麼結構中,然後找到這些記錄中的最大值和最小值,求差即可。在我的**中,用乙個棧結構儲存葉結點的深度。**實現如下:

typedef struct

node node;

stack

record;

void isruledtreecore(node *n, int

depth)

if(n->left !=null)

isruledtreecore(n->left,depth+1

);

if(n->right !=null)

isruledtreecore(n->right,depth+1

);

return;}

bool isruledtree(node *root)

if(big-small>=-1 && big-small<=1

)

return

true

;

return

false

;}

2023年華為校招機試題目

2014年華為校招機試題目 通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複 字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1.僅壓縮重複出現的字元。比如字串 abcbc 由於無 連續重複字元,壓縮後的字串還是 abcabc 2.壓縮欄位的格式為 字元重複的...

2014百度校招筆試題

二 演算法與程式設計題 本題共45分 1.使用c c 編寫函式,實現字串反轉,要求不使用任何系統函式,且時間複雜度最小,函式原型 char reverse str char str 15分 演算法實現 實現字串翻轉 char reverse str char str char begin char ...

2014百度校招筆試題

二 演算法與程式設計題 本題共45分 1.使用c c 編寫函式,實現字串反轉,要求不使用任何系統函式,且時間複雜度最小,函式原型 char reverse str char str 15分 演算法實現 cpp view plain copy 實現字串翻轉 char reverse str char ...