首页 > 其他 > 详细

[剑指Offer]面试题27-二叉树的镜像

时间:2019-03-02 10:55:36      阅读:186      评论:0      收藏:0      [点我收藏+]

题目链接

https://www.nowcoder.com/practice/564f4c26aa584921bc75623e48ca3011?tpId=13&tqId=11171&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题意

输入一棵二叉树,输出它的镜像。

思路

前序遍历一遍,若遍历到的节点是非叶节点,就交换它的左右子节点。

相关

关键是,遇到数据结构相关问题,比如二叉树、数组、链表等,有画图分析的意识。
一些题目边界条件的处理也可从画图分析得到。

代码

/*
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) {
        if(pRoot!=nullptr){
            if(pRoot->left!=nullptr||pRoot->right!=nullptr){
                TreeNode* pTemp=pRoot->left;
                pRoot->left=pRoot->right;
                pRoot->right=pTemp;

                if(pRoot->left!=nullptr){
                    Mirror(pRoot->left);
                }
                if(pRoot->right!=nullptr){
                    Mirror(pRoot->right);
                }
            }
        }

    }
};

[剑指Offer]面试题27-二叉树的镜像

原文:https://www.cnblogs.com/coding-gaga/p/10460013.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!