二叉樹的映象( 翻轉二叉樹)
阿新 • • 發佈:2020-09-16
leetcode 226翻轉二叉樹(劍指offer.二叉樹的映象)
初級遞迴
1 class Solution: 2 def invertTree(self, root: TreeNode) -> TreeNode: 3 if not root: 4 return 5 root.left,root.right=root.right,root.left 6 self.invertTree(root.left) 7 self.invertTree(root.right) 8 returnroot
一行遞迴
1 class Solution: 2 def invertTree(self, root: TreeNode) -> TreeNode: 3 if not root: 4 return 5 root.left,root.right=self.invertTree(root.right),self.invertTree(root.left) 6 return root
輔助棧
class Solution: def invertTree(self, root: TreeNode)-> TreeNode: if not root: return stack=[root] while stack: node=stack.pop() node.left,node.right=node.right,node.left if node.left: stack.append(node.left) if node.right: stack.append(node.right)return root