二叉树先序遍历排序之后再放入右子树即可
class Solution { public: void flatten(TreeNode* root) { vector<TreeNode*> l; preorderTraversal(root, l); int n = l.size(); for (int i = 1; i < n; i++) { TreeNode *prev = l.at(i - 1), *curr = l.at(i); prev->left = nullptr; prev->right = curr; } } void preorderTraversal(TreeNode* root, vector<TreeNode*> &l) { if (root != NULL) { l.push_back(root); preorderTraversal(root->left, l); preorderTraversal(root->right, l); } } };
Flatten Binary Tree to Linked List
原文:https://www.cnblogs.com/zhangdalao/p/14638578.html