1. 程式人生 > 其它 >leetcod熱題—226.翻轉二叉樹

leetcod熱題—226.翻轉二叉樹

技術標籤:Pythonleetcode

題目:
翻轉一棵二叉樹。
在這裡插入圖片描述
思路:

解答:
法一:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def invertTree(self, root: TreeNode) ->
TreeNode: if not root: return root stack=[root] while stack: cur=stack.pop() if cur.left: stack.append(cur.left) if cur.right: stack.append(cur.right) cur.left,cur.right=cur.right,cur.
left return root

法二:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def invertTree(self, root: TreeNode) -> TreeNode:
        if
not root: return None def dfs(root): if not root: return root.left, root.right = root.right, root.left dfs(root.left) dfs(root.right) dfs(root) return root