一级标题
交换每个结点的左右孩子
c++代码:三步递归法
class Solution{
public:
TreeNode* inverTree(TreeNode* root){
if(root == NULL) return root;
swap(root->left,root->right);
invertTree(root->left);
invertTree(root->right);
return root;
}
};
递归法:python 前序遍历
class Solution:
def invertTree(self,root:TreeNode)->TreeNode:
if not root:
return None
root.left,root.right = root.right,root.left
self.inverTree(root.left)
self.inverTree(root.right)
return root
递归法:python 中遍历
class Solution:
def invertTree(self,root:TreeNode)->TreeNode:
if not root:
return None
self.inverTree(root.left)
root.left,root.right = root.right,root.left
self.inverTree(root.right)
return root
递归法:python 后遍历
class Solution:
def invertTree(self,root:TreeNode)->TreeNode:
if not root:
return None
self.inverTree(root.left)
self.inverTree(root.right)
root.left,root.right = root.right,root.left
return root