提出問題:翻轉一棵二叉樹。(除根結點以外)
原始二叉樹:
新二叉樹:
解題思路:遇見二叉樹先想到遞歸。從最下層的葉子結點開始置換左右子節點,一直置換到到最上層的根結點的左右節點爲止。
代碼如下( ̄▽ ̄):
# 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
left = invertTree(root.left)
right = invertTree(root.right)
root.left = right
root.right = left
return root
時間與空間消耗: