leetCode 226. Invert Binary Tree
来源:互联网 发布:淘宝搜索的算法 编辑:程序博客网 时间:2024/05/01 14:33
题目链接:https://leetcode.com/problems/invert-binary-tree/
题目内容:
Invert a binary tree.
4 / \ 2 7 / \ / \1 3 6 9to
4 / \ 7 2 / \ / \9 6 3 1
题目分析:
当然AC觉得这是道很简单的题,是自己想复杂了(人家本身就放在easy程度的=.=)。一开始我的想法除了考虑空指针这些问题(必须的啦~),还考虑了如果两棵子树都是空就不用操作了、如果一棵为空一棵不为空,那就只操作不为空的那棵、如果两棵都不为空那就先判断两棵子树的值是否相等,相等就不交换不相等再交换值然后递归每棵子树...的确,个人感觉如果考虑上面的想法的话,效率应该会比下面贴出的AC的代码更好一点点,因为免去了一些不必要的交换,但同时也增加了代码的长度和杂乱度,而且难免会有漏掉的情况。后来撸了一发冷静下来之后,觉得不需要考虑这么复杂,无论值相不相等,无论是否一棵为空,都统统交换了再说,left指针指向right,right指针指向left,然后递归下去。代码一下子就AC了,去看一下耗时,跟大部分人一样0ms通过,那些效率更高的应该就是使用dfs或者bfs迭代实现的版本了。BTW,讨论区中大家的想法不仅差不多,有一份连代码都跟我一样,甚至连变量名temp都一样,程序猴也是醉醉的~
/** * 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* invertTree(TreeNode* root) { if(root == NULL) return NULL; else{ TreeNode* temp = root->left; root->left = root->right; root->right = temp; invertTree(root->left); invertTree(root->right); return root; } }};
0 0
- LeetCode 226. Invert Binary Tree
- [leetcode] 226.Invert Binary Tree
- [leetcode] 226. Invert Binary Tree
- 【LeetCode】226. Invert Binary Tree
- leetCode 226. Invert Binary Tree
- LeetCode #226. Invert Binary Tree
- [LeetCode]226. Invert Binary Tree
- 226. Invert Binary Tree LeetCode
- LeetCode 226. Invert Binary Tree
- LeetCode 226. Invert Binary Tree
- leetcode:226. Invert Binary Tree
- LeetCode 226. Invert Binary Tree
- [LeetCode]226. Invert Binary Tree
- leetcode 226. Invert Binary Tree
- 【LeetCode】226. Invert Binary Tree
- #leetcode#226. Invert Binary Tree
- LeetCode *** 226. Invert Binary Tree
- leetcode: 226. Invert Binary Tree
- A*算法入门
- UNIX的各种文字游戏
- <LeetCode><Easy> 328. Odd Even Linked List
- POJ 1077 Eight(八数码第八境界|IDA*+曼哈顿距离+判断是否有解)
- 八数码的几种做法的总结以及是否有解的判断
- leetCode 226. Invert Binary Tree
- **LeetCode 60. Permutation Sequence
- (一二二)运算符重载——第十一章
- Android Studio——SAX解析XML
- (一二二)友元函数
- Learning how to learn(1)
- Linux(Ubuntu, Fedora, Vmware)使用笔记(1)
- Final Keyword In Java
- (一二三)矢量坐标计算