翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1
解题思路:
二叉树的题,一般通过递归就可以解决了
C++
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* invertTree(TreeNode* root) { TreeNode* node = root; TreeNode* tmp = NULL; if(node) { tmp = node->left; node->left = node->right; node->right = tmp; invertTree(node->left); invertTree(node->right); } return root; } };
Python
# 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: node = root if node: tmp = node.left node.left = node.right node.right = tmp self.invertTree(node.left) self.invertTree(node.right) return root