16年華爲春季實習生機試題

給出一個字符串形式表達的二叉樹,求出指定節點深度。

輸入的樹形結構字符串格式爲:

1、以父節點、左子樹、右子樹表示的二叉樹;每個父節點不會超過兩個子節點;

2、樹的每一個節點採用單個字母表示;樹的層次採用數字表示,樹根的層次爲1,下一層爲2,不會超過9層;

3、字符串以“節點名稱 層次數 節點名稱 層次數…”的形式出現,同一個父節點下,先出現的爲左子樹。

例如字符串“a1b2c2d3e3f3”生成一棵如下的樹:

         a

       /   \

      b     c

     / \   / 

    d   e f     

節點a的深度爲3,節點b的深度是2,節點f的深度是1

輸入:一行字符串,表示一個二叉樹。一行字符串,一個字符一個節點,輸入確保字符不會存在重複節點

輸出:指定節點的深度,如果節點不存在,返回0;整數之間用空格隔開

例如:

輸入:a1b2c2d3e3f3

ab

輸出:3 2

//這本來是一道很簡單的二叉樹求深度的算法題,但是因爲這棵樹沒那麼好建,所以不容易做,感覺最好的辦法就是拿出一個vector<node>來建立一顆樹,再申請一個二維數組int[][]來放置節點的孩子信息,然後再用這個二維數組裏的信息來初始化node的左右孩子的位置。


發佈了38 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章