156.上下翻转二叉树
1. 题目
给定一个二叉树,其中所有的右节点要么是具有兄弟节点(拥有相同父节点的左节点)的叶节点,要么为空
将此二叉树上下翻转并将它变成一棵树, 原来的右节点将转换成左叶节点。返回新的根。
2. 解题
前序遍历或者后序遍历
3. 代码
TreeNode* upsideDown(TreeNode* root) { if(!root || !root->left) return root; TreeNode* l = root->left;//左右子节点存取来 TreeNode* r = root->right; root->left = NULL;//上下断开 root->right = NULL; TreeNode* p = upsideDown(l);//根节点 l->left = r;//跟上面连接起来 l->right = root; return p; }