发现了二叉树这种递归法都是有套路的,只要你把道理写清楚了,递归的复杂过程就让计算机去做吧,你不要管那么多。。。
- 每次需要考虑的特殊情况就是递归出口:这题就是当树为空时,return
- 然后先考虑根节点的左右子树翻转:用一个中间节点先保存左子树,其实就是利用交换两个数的值的思路,不再赘述。
- 递归左右子树
- return root
代码如下:
class Solution:
def invertTree(self, root: TreeNode) -> TreeNode:
if root is None:
return
tempNode = root.left
root.left = root.right
root.right = tempNode
self.invertTree(root.left)
self.invertTree(root.right)
return root
网友评论