沙盒生存遊戲《上一代:生存》Steam正式發售 國區24元
阿新 • • 發佈:2021-06-20
題目連結:
https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/
題目描述:
給你二叉樹的根結點 root ,請你將它展開為一個單鏈表:
展開後的單鏈表應該同樣使用 TreeNode ,其中 right 子指標指向連結串列中下一個結點,而左子指標始終為 null 。
展開後的單鏈表應該與二叉樹 先序遍歷 順序相同。
題解:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: vector<TreeNode*> vec; void preTravel(TreeNode* root) { if(root != nullptr) { vec.push_back(root); preTravel(root->left); preTravel(root->right); } } void flatten(TreeNode* root) { preTravel(root); for(int i = 0; i < vec.size(); i++) { if(i != vec.size() - 1) { vec[i]-> left = nullptr; vec[i]-> right = vec[i + 1]; }else { vec[i]-> left = nullptr; vec[i]-> right = nullptr; } } } };