本文共 832 字,大约阅读时间需要 2 分钟。
反转二叉树,考的是递归的思想:
题目描述:
Invert a binary tree.4 / \ 2 7/ \ / \1 3 6 9
to
4 / \ 7 2 / \ / \9 6 3 1
一般来说,只要遇到和树相关的题目,第一时间要想到递归和动态规划。
思路是:递归地将左右两子树交换TreeNode* invertTree(TreeNode* root) { if(root == NULL){ return NULL; } TreeNode* temp = root->left; root->left = root->right; root->right = temp; invertTree(root->left); invertTree(root->right); return root; }
python代码:
最近发现在写树相关题目的时候用python的代码格外简洁,在面试中很省时间也简单易懂,所以之后的代码我都试着用python先写一份,之后再改成c++class Solution(object): def invertTree(self, root): if root is None: return None temp = TreeNode(1) temp = root.left root.left = root.right root.right = temp self.invertTree(root.left) self.invertTree(root.right) return root
转载地址:http://yemmi.baihongyu.com/