美文网首页
翻转二叉树

翻转二叉树

作者: walkerwzy | 来源:发表于2021-12-01 18:22 被阅读0次

    最近在找工作,所以这些算法梗又出现在了我的阅读视野里,比如经典的homebrew作者吐槽的翻转二叉树的问题。


    image.png

    我本以为是根和叶节点倒转过来,原来是同层里面的左右翻转。

    那么就是把左边换到右边,右边换到左边呗,可以考虑递归。我一直用一个原则理解递归,就是把命令传达下去(比如上面的左右互换,就完了),而不关心细节,只有最末端的那个大头兵才是真正做业务的人,写了一下,递归加业务也就4行代码:

    image.png

    具体到这个问题,就是我把left和right互换就是了
    然后left和right你们做好自己的子级的互换,我不管,所以核心代码就一句
    left, right = right, left,前面是为了稳妥,通过了之后,直接用python这种左右互换的特性,那就真是一句代码了:

    def invertTree(self, root: TreeNode) -> TreeNode:
        if root is None:
            return None
        root.right, root.left = self.invertTree(root.left), self.invertTree(root.right)
        return root
    

    相关文章

      网友评论

          本文标题:翻转二叉树

          本文链接:https://www.haomeiwen.com/subject/fszsxrtx.html