使用層次遍歷重建二叉樹並遍歷

2021-10-24 16:38:16 字數 857 閱讀 2502

58同城的一道題,蠻有意思的。利用層次遍歷後的陣列,進行二叉樹的重建。數值-1代表null。

解題思路:那麼我們依然使用佇列,進行層次遍歷,進行重建,這邊有的問題是當示例為array = 時,那麼需要注意去除null,因為null節點下面兩個節點必然為null。

#include #include #include #include #include #include #include using namespace std;

class solution

}; vector> binarytreescan(int* input, int inputlen)

tree_node* creat_node(int* input, int inputlen)

if (i < inputlen)

else

i++;

}else

if (i < inputlen)

else

i++;

}else

} return new_node;

} void front(tree_node* root, vector& front_data)

void mid(tree_node* root, vector& mid_data)

void back(tree_node* root, vector& back_data) };

int main();

int arraylen = 15;

solution.binarytreescan(array,arraylen);

system("pause");

return 0;

}

層次遍歷二叉樹 並輸出遍歷結果

include include define max 100 typedef char elemtype typedef struct bitnode bitnode,bintree 建立二叉樹 void createbintree bintree t 按要求輸出二叉樹 void print bin...

重建二叉樹與二叉樹的層次遍歷

time limit 1000ms memory limit 65536k 有疑問?點這裡 已知一棵二叉樹的前序遍歷和中序遍歷,求二叉樹的後序遍歷。輸入資料有多組,第一行是乙個整數t t 1000 代表有t組測試資料。每組包括兩個長度小於50 的字串,第乙個字串表示二叉樹的先序遍歷序列,第二個字串表...

層次遍歷二叉樹

問題 假定根節點位於第0層 1.層次遍歷二叉樹 每層換行分開 2.層次遍歷二叉樹指定的某層 本文 例如 上圖中1.123 4567 82.第三層 78可以看出得出第二問的解,第一問迎刃而解了,所以從問題二下手 1.層次遍歷二叉樹指定的某層 可以得出這樣的乙個結論 遍歷二叉樹的第k層,相當於遍歷二叉樹...