zoukankan      html  css  js  c++  java
  • 二叉树的镜像

    二叉树的镜像定义:源二叉树 
        	    8
        	   /  
        	  6   10
        	 /   / 
        	5  7 9 11
        	镜像二叉树
        	    8
        	   /  
        	  10   6
        	 /   / 
        	11 9 7  5
    递归方法:
    /*
    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 == NULL)
                return ;
            TreeNode * temp;
            if(pRoot->left || pRoot->right)
            {
                Mirror(pRoot->left);
                Mirror(pRoot->right);
                temp = pRoot->left;
                pRoot->left = pRoot->right;
                pRoot->right = temp;
            }
        }
    };

    非递归方法:即用栈实现

    class Solution {
    public:
        void Mirror(TreeNode *pRoot) {
            //非递归实现
            if(pRoot==NULL)
                return;
            stack<TreeNode*> stackNode;
            stackNode.push(pRoot);
            while(stackNode.size()){
                TreeNode* tree=stackNode.top();
                stackNode.pop();
                if(tree->left!=NULL || tree->right!=NULL){
                    TreeNode *ptemp=tree->left;
                    tree->left=tree->right;
                    tree->right=ptemp;
                }
                if(tree->left)
                    stackNode.push(tree->left);
                if(tree->right)
                    stackNode.push(tree->right);
            }
        }
    };
     
  • 相关阅读:
    SpringBoot-Swagger
    SpringBoot-Shiro
    SpringBoot-SpringSecurity
    SpringBoot-整合数据库
    SpringBoot-Web开发
    SpringBoot-基础
    SpringMVC-文件上传和下载
    SpringMVC-拦截器
    SpringMVC-AJAX
    Eclipse的安装
  • 原文地址:https://www.cnblogs.com/Lune-Qiu/p/8690575.html
Copyright © 2011-2022 走看看