二叉树-翻转二叉树
代码随想录-刷题笔记
226. 翻转二叉树 - 力扣(LeetCode)
内容:
传说有一位大牛在面试谷歌的时候,因为没手撕这道算法题,被拒了。
不管如何,这道题引起了大家的广泛讨论,不过我个人是不太相信这种说法的。
有一天图一乐,去网上搜了搜,看到有个帖子贴出大牛本人说的是手撕翻转二叉搜索树。
那大概就不会这么简单了,如果只是单纯的翻转二叉树 没有可能不ac出来(作为一个世界级的优秀程序员)
扯到这,不过这道题主要还是闲聊一下。 本题很水,也很简单。
就是常规的swap。
然后递归即可完成~
代码:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public TreeNode invertTree(TreeNode root) {
if(root!= null) {
TreeNode tmp = root.left;
root.left = root.right;
root.right = tmp;
invertTree(root.left);
invertTree(root.right);
}
return root;
}
}
总结:
这道题算是学算法初期的乐趣吧,当时真的天真以为自己算法超越了大牛,哈哈