二种方法:STACK和递归调用

二叉树的镜像

http://www.nowcoder.com/questionTerminal/564f4c26aa584921bc75623e48ca3011

碰到节点就swap(left,right)就完事了,然后在选择一种遍历方法 入栈的或者递归的:前中后序遍历方法。参考:二叉树:层序,前,中,后 序遍历的解题模板https://blog.csdn.net/sinat_36338365/article/details/107916628

class Solution {
public:
    void Mirror(TreeNode *pRoot) {
        if(pRoot==NULL)return ;//如果节点为空则返回
        TreeNode *p=pRoot;
//方法一:stack
        /*stack<TreeNode*>sta;//前序(中后都行)遍历每个节点,然后交换他们的左右节点
        sta.push(p);
        while(!sta.empty()){
            TreeNode *temp=sta.top();
            sta.pop();
            swap(temp->left,temp->right);//将节点的左右子树进行交换
            if(temp->left)    sta.push(temp->left);
            if(temp->right)   sta.push(temp->right);
        }*/
//方法二:递归调用,每次都把根节点的左右子树交换 知道节点为NULL
        swap(p->left,p->right);
        Mirror( p->left);
        Mirror( p->right);
    }
};
全部评论

相关推荐

不亏是提前批,神仙打架,鼠鼠不配了
站队站对牛:现在92都报工艺岗了
投递韶音科技等公司7个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:47
机械打工仔:你自己匿名可以,这么好的公司就别给它匿名了
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
07-09 19:25
门头沟学院 Java
这是要把每一个投校招的都开盒吗?
26届之耻将大局逆转:裁人的时候一次性追回餐费
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务