LeetCode 226. Invert Binary Tree 题解(C++)

来源:互联网 发布:网络测试命令 编辑:程序博客网 时间:2024/06/06 11:42

LeetCode 226. Invert Binary Tree 题解(C++)


题目描述

  • Invert a binary tree.

示例

  • Input:
    4
    / \
    2 7
    / \ / \
    1 3 6 9

  • Output:
    4
    / \
    7 2
    / \ / \
    9 6 3 1

思路

  • 用递归实现二叉树的翻转。递归出口为当结点为空时,返回NULL。否则对左右子树进行递归翻转,之后对翻转完成的左右子树的位置进行交换即可。

代码

/** * 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)     {        if (root == NULL)        {            return NULL;        }        root->left = invertTree(root->left);        root->right = invertTree(root->right);        TreeNode *temp = root->left;        root->left = root->right;        root->right = temp;        return root;    }};
0 0
原创粉丝点击