1、问题描述
翻转一棵二叉树。样例
1 1 / \ / \ 2 3 => 3 2 / \ 4 42、实现思路
将同一节点的左右子树交换。
3、代码
/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */ class Solution { public: /** * @param root: a TreeNode, the root of the binary tree * @return: nothing */ void invertBinaryTree(TreeNode *root) { // write your code here if(root==NULL) return ; invertBinaryTree(root->left); invertBinaryTree(root->right); swapTree(root); } void swapTree(TreeNode *root){ TreeNode *p= root->left; root->left = root->right; root->right=p; } };
4、感想
遍历,将每个节点的左右子树交换。