【牛客刷题】二叉树的镜像

文章目录

  • 前言
  • 一、题目描述
  • 二、详细题解
  • 三. 代码实现
  • 总结


前言

每天能够写一道题也是可以的,如果这道题可以有所收获的话!!!


一、题目描述

【牛客刷题】二叉树的镜像_第1张图片

二、详细题解

  1. 这个题目首先想到的是采用分治方法;
  2. 按照题目表达的意思,左边的子树要和右边的子树互换达到要求;
  3. 把每个节点的左右节点互换,遍历所有节点,当节点为空返回空,递归下去就可以完成任务了;

三. 代码实现

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param pRoot TreeNode类 
 * @return TreeNode类
 */
struct TreeNode* Mirror(struct TreeNode* pRoot ) {
    // write code here
    if(pRoot==NULL){
        return NULL;
    }

    struct TreeNode* temp=pRoot->left;
    pRoot->left=pRoot->right;
    pRoot->right=temp;
    Mirror(pRoot->left);
    Mirror(pRoot->right);

    return pRoot;
}

总结

还是老样子,有空刷题还是不错的

你可能感兴趣的:(牛客网刷题,算法,数据结构,c语言)