/**
* 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* myFlatten(TreeNode* root) {
if(!root || !root->left && !root->right) return root;
TreeNode* left = myFlatten(root->left);
TreeNode* right = myFlatten(root->right);
if(left && right) {
left->right = root->right;
root->right = root->left;
}
else if(left) {
root->right = root->left;
right = left;
}
root->left = nullptr;
return right;
}
void flatten(TreeNode* root) {
myFlatten(root);
}
};
leetcode 114. 二叉树展开为链表
最新推荐文章于 2025-02-24 22:51:40 发布