题目
给定一个二叉树,其中所有的右节点要么是具有兄弟节点(拥有相同父节点的左节点)的叶节点,要么为空,将此二叉树上下翻转并将它变成一棵树, 原来的右节点将转换成左叶节点。返回新的根。
解题思路

代码
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/class Solution {public:TreeNode* upsideDownBinaryTree(TreeNode* root) {TreeNode * tmp;TreeNode * resultfromLeft;if(root == NULL || root->left == NULL) return root;resultfromLeft = upsideDownBinaryTree(root->left);tmp = resultfromLeft;while(tmp->right != NULL) tmp = tmp->right;tmp->right = root;tmp->left = root->right;root->left = root->right = NULL;return resultfromLeft;}};
