根據一個輸入資料構造二叉樹和連結串列資料結構的方法(c++)
根據一個輸入資料構造二叉樹和連結串列資料結構的方法(c++)
單向連結串列
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* BuildList(vector<string> list, int start)
{
if (list[start] == "null") {
return NULL;
}
ListNode* root = new ListNode(atoi(list[start].c_str()));
int node = start + 1;
if (node > list.size() - 1) {
root->next = NULL;
}
else {
root->next = BuildList(list, node);
}
return root;
}
二叉樹
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
//list [0,1,null,2,3]
TreeNode* BuildTree(vector<string> list, int start)
{
if (list[start] =="null") {
return NULL;
}
TreeNode* root = new TreeNode(atoi(list[start].c_str()));
int lnode = 2 * start + 1;
int rnode = 2 * start + 2;
if (lnode > list.size() - 1) {
root->left = NULL;
}
else {
root->left = BuildTree(list, lnode);
}
if (rnode > list.size() - 1) {
root->right = NULL;
}
else {
root->right = BuildTree(list, rnode);
}
return root;
}
相關文章
- [資料結構] 根據前中後序遍歷中的兩種構造二叉樹資料結構二叉樹
- C++資料結構連結串列的基本操作C++資料結構
- 資料結構-連結串列資料結構
- 連結串列-資料結構資料結構
- 資料結構 - 連結串列資料結構
- 資料結構--連結串列資料結構
- 資料結構—連結串列資料結構
- 資料結構——單連結串列的C++實現資料結構C++
- 資料結構 - 單連結串列 C++ 實現資料結構C++
- 資料結構-單連結串列、雙連結串列資料結構
- 資料結構之「連結串列」資料結構
- JavaScript資料結構--連結串列JavaScript資料結構
- 資料結構之連結串列資料結構
- 資料結構(樹):二叉樹資料結構二叉樹
- Java資料結構和演算法(一)連結串列Java資料結構演算法
- Redis資料結構—連結串列與字典的結構Redis資料結構
- 資料結構 - 二叉樹資料結構二叉樹
- 資料結構-二叉樹資料結構二叉樹
- 前端資料結構--線性結構-連結串列前端資料結構
- js資料結構--連結串列(likedList)JS資料結構
- 資料結構基礎 連結串列資料結構
- Java版-資料結構-連結串列Java資料結構
- 資料結構學習--連結串列資料結構
- 資料結構之連結串列【上】資料結構
- JS資料結構(四)——連結串列JS資料結構
- 資料結構——雙向連結串列資料結構
- 資料結構之單連結串列資料結構
- 資料結構之連結串列操作資料結構
- JAVA資料結構之連結串列Java資料結構
- 資料結構04——單連結串列資料結構
- JavaScript資料結構 之 連結串列JavaScript資料結構
- 資料結構:跳躍連結串列資料結構
- 【C++ 資料結構:連結串列】二刷LeetCode707設計連結串列C++資料結構LeetCode
- 資料結構實驗之連結串列一:順序建立連結串列資料結構
- 資料結構之「二叉樹」資料結構二叉樹
- 資料結構-平衡二叉樹資料結構二叉樹
- 資料結構連結串列筆試題資料結構筆試
- 資料結構之迴圈連結串列資料結構