[Leetcode] 156. Binary Tree Upside Down 解题报告
来源:互联网 发布:淘宝实名认证怎么改 编辑:程序博客网 时间:2024/06/09 13:51
题目:
Given a binary tree where all the right nodes are either leaf nodes with a sibling (a left node that shares the same parent node) or empty, flip it upside down and turn it into a tree where the original right nodes turned into left leaf nodes. Return the new root.
For example:Given a binary tree
{1,2,3,4,5}
,1 / \ 2 3 / \4 5
return the root of the binary tree [4,5,2,#,#,3,1]
.
4 / \ 5 2 / \ 3 1
思路:
刚刚开始没有看懂这道题目的含义,后来参考了网上的说明才明白了。题目的意思是说每个结点的右子树要么为空,要么一定有一个左子树孩子和一个右子树孩子(不存在只含有一个右子树孩子的情况),因此树的形状是左偏的。所以我们的思路就是:将最左边的子树作为最终的根节点,然后递归地将其父节点作为其右孩子,并且父结点的右孩子作为其左孩子。一个非常重要的地方是每次一定要将父结点的左右孩子指针都置为空,因为父结点设置成其左孩子的右孩子之后成了叶子结点,需要将其所属的指针断掉。
代码:
/** * 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) { if (!root || !root->left) { return root; } TreeNode *new_root = upsideDownBinaryTree(root->left); root->left->left = root->right; root->left->right = root; root->left = NULL; root->right = NULL; return new_root; }};
阅读全文
0 0
- [leetcode] 156. Binary Tree Upside Down 解题报告
- [Leetcode] 156. Binary Tree Upside Down 解题报告
- leetcode-156.Binary Tree Upside Down
- [Leetcode]156.Binary Tree Upside Down
- Leetcode 156. Binary Tree Upside Down
- LeetCode—156. Binary Tree Upside Down
- LeetCode 156. Binary Tree Upside Down
- [Leetcode] Binary Tree Upside Down
- LeetCode Binary Tree Upside Down
- leetcode Binary Tree Upside Down
- [Leetcode] Binary Tree Upside Down
- leetcode--Binary Tree Upside Down
- LeetCode-Binary Tree Upside Down
- Leetcode Binary Tree Upside Down
- leetcode--Binary Tree Upside Down
- 156. Binary Tree Upside Down
- 156. Binary Tree Upside Down
- LeetCode 156. Binary Tree Upside Down(树的倒转)
- JdbcUtil
- [分治] 51nod 算法马拉松25 C. 区间计数
- git-osc-android客户端之源码分析3
- Leetcode-3Sum Closest
- MySQL字符串和二进制
- [Leetcode] 156. Binary Tree Upside Down 解题报告
- java SSO 之Cas 笔记
- Head First Python学习笔记
- 【Git】Linux下的Git简单管理
- USACO Section 1.2 Transformations
- 【剑指offer-解题系列(30)】最小的K个数
- LeetCode 198. House Robber
- python的KNN算法基本实现
- fuzhuo---Problem 1205 小鼠迷宫问题