LeetCode刷题之226.翻转二叉树
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |
- 题目:
翻转一棵二叉树。 - 示例:
4
/ \
2 7
/ \ / \
1 3 6 9
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
4
/ \
7 2
/ \ / \
9 6 3 1
- 说明:
你可以假设 s 和 t 具有相同的长度。 - 代码:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def invertTree(self, root: TreeNode) -> TreeNode:
if root == None:
return
root.right,root.left = root.left,root.right
root.right,root.left = self.invertTree(root.right),self.invertTree(root.left)
return(root)
# 执行用时 :52 ms, 在所有 Python3 提交中击败了54.05%的用户
# 内存消耗 :13.7 MB, 在所有 Python3 提交中击败了5.24%的用户
- 算法说明:
从上到下,逐步进行遍历二叉数,然后交换左右节点,左右子节点继续调用invertTree函数递归,直到根节点为空,返回root。