【剑指offer】二叉树的镜像

考察知识点:二叉树的遍历变形

题目描述

操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:

二叉树的镜像定义:源二叉树 
    	    8
    	   /  \
    	  6   10
    	 / \  / \
    	5   7 9  11
    	镜像二叉树
    	    8
    	   /  \
    	  10   6
    	 / \  / \
    	11  9 7  5

题解

分析

实质是树的遍历,每次递归需要将当前结点的左右子树调换
内置函数 swap 可直接实现左右子树调换,不需要申请临时变量

代码
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/
class Solution {
public:
    void Mirror(TreeNode *pRoot) {
    	// pRoot 不为 NULL 时
        if(pRoot){
          // 调换 pRoot 左右子树
           swap(pRoot->left,pRoot->right);
           // 递归左子树
           Mirror(pRoot->left);
           // 递归右子树
           Mirror(pRoot->right);
        }
    }
};
全部评论

相关推荐

03-25 19:00
东北大学 Java
程序员牛肉:太好了,是聊天记录。不得不信了。 当个乐子看就好,不要散播焦虑
点赞 评论 收藏
分享
那么好了好了:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务