LeetCode - 226. Invert Binary Tree #Java

Question

Invert a binary tree. 翻转二叉树

     4                                  4
   /   \                              /   \
  2     7             to             7     2
 / \   / \                          / \   / \
1   3 6   9                        9   6 3   1

这题的槽点是

This problem was inspired by [this original tweet](https://twitter.com/mxcl/status/608682016205344768) by [Max Howell](https://twitter.com/mxcl)

Solution

public class Solution {
    public TreeNode invertTree(TreeNode root) {
        if (root != null) {
            TreeNode temp = root.left;
            root.left = root.right;
            root.right = temp;
        
            invertTree(root.left);
            invertTree(root.right);
        }
        
        return root;
    }
}
Point
  • 递归的四条基本法则
    • 基准情形(base case)
      必须总要有某些基准的情形,它们不用递归就能求解
    • 不断推进(making progress)
      对于那些要递归求解的情形,递归调用必须总能朝着一个基准情形推进。
    • 设计法则 (design rule)
      假设所有的递归调用都能运行
    • 和成效益法则(compound interest rule)
      求解一个问题的同意实例时,切勿在不同的递归中做重复性工作。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •  才毕业的开发小白,最近在使用node、php和vue,有兴趣的小伙伴可以加群 134246716,大家一起学习,...
    偏偏注定要落脚丶阅读 4,905评论 8 8
  • 最近高等代数正好讲到这里,此篇文章正好对所学知识做一个具体程序实践。 设计算法时使用递归的思想是一个程序员的基本素...
    FrancisSoung阅读 10,056评论 2 3
  • 递归算法,简单却不简单的一种算法。 递归算法是把问题转化为规模缩小了的同类问题的子问题。然后递归调用函数(或过...
    郎小凯阅读 5,096评论 0 0
  • 【今日晨读】: 知道这些秘密,你也可以成为演讲高手 【阅读书籍】: 《TED演讲的秘密—18分钟改变世界》作者 〔...
    顺水顺风阅读 695评论 0 0
  • call方法 call([thisObj[,arg1[, arg2[, [,.argN]]]]])调用一个对象...
    a180754bf396阅读 1,378评论 0 0