题目链接:114. 二叉树展开为链表 - 力扣(LeetCode)
就先序遍历的顺序,其实就是简单的深度遍历顺序,装进一个容器里面再前一个后一个串连起来,注意容器的size是个无符号数,无符号数和有符号运行时会转换成无符号数,因此当size为0时,再减一就不会变成负数而是变成一个极大数
class Solution {
public:vector<TreeNode *> assist;void dfs(TreeNode *root) {if (root == nullptr)return;assist.push_back(root);dfs(root->left);dfs(root->right);}void flatten(TreeNode *root) {dfs(root);for (int i = 0; i < int(assist.size()) - 1; i++) {assist[i]->left = nullptr;assist[i]->right = assist[i + 1];}}
};