赞
踩
/** * 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: void flatten(TreeNode* root) { while (root != nullptr) { if (root->left == nullptr) root = root->right; else { TreeNode* left = root->left; while (left->right != nullptr) left = left->right; left->right = root->right; root->right = root->left; root->left = nullptr; root = root->right; } } return; } };
/** * 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: TreeNode* flattenChildrenTree(TreeNode* root) { if (root == nullptr) return nullptr; TreeNode* right = flattenChildrenTree(root->right); root->right = flattenChildrenTree(root->left); TreeNode* tmp = root; while (tmp->right!= nullptr) tmp = tmp->right; tmp->right = right; root->left = nullptr; return root; } void flatten(TreeNode* root) { root = flattenChildrenTree(root); return; } };


Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。