拟人算法系列文章,以容易理解的方式描述算法,点赞收藏不迷路
反转二叉树
class Solution:
def invert_tree(self, cur: TreeNode) -> None:
if cur is None:
return
cur.left, cur.right = cur.right, cur.left # 中
self.invert_tree(cur.left) # 左
self.invert_tree(cur.right) # 右
if __name__ == '__main__':
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
Solution().invert_tree(root)
print(root.val) # 1
print(root.left.val) # 3
print(root.right.val) # 2
print(root.right.left.val) # 5
print(root.right.right.val) # 4
1)参数为root,返回值无,2)退出条件,如果root为None,则返回空,3)单层递归逻辑,交换这个人两小弟,然后对两小弟递归执行同样的操作