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層,相當於遍歷二叉樹...