題目
難度:★☆☆☆☆
類型:二叉樹
翻轉(zhuǎn)一棵二叉樹坛芽。
示例
輸入:
4
/ \
2 7
/ \ / \
1 3 6 9
輸出:
4
/ \
7 2
/ \ / \
9 6 3 1
解答
樹的問題我們一般通過遞歸實現(xiàn)捣作。翻轉(zhuǎn)一棵樹,需要進行以下步驟:
如果樹為空昂验,則直接返回這棵樹;
交換根節(jié)點的左右子樹艾扮;
對樹的左右子樹分別進行翻轉(zhuǎn)既琴,通過遞歸調(diào)用本函數(shù)實現(xiàn)。
class Solution(object):
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if root: # 如果輸入不為空樹
root.left, root.right = root.right, root.left # 左右子樹互換
self.invertTree(root.left) # 翻轉(zhuǎn)左子樹
self.invertTree(root.right) # 翻轉(zhuǎn)右子樹
return root # 返回翻轉(zhuǎn)結(jié)束的二叉樹的根結(jié)點
如有疑問或建議栏渺,歡迎評論區(qū)留言~