• 面试题01 二叉树的镜像 【树】[ water ]


    题目:输入一颗二叉搜索树,将该树转换为它的镜像,即在转换后的二叉搜索树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。 

    例如输入:

         8
        /  \
      6      10
     /\       /\
    5  7    9   11

    输出:

          8
        /  \
      10    6
     /\      /\
    11  9  7  5

    1 该问题实质上是将二叉树的左右两子树,进行交换。
    求二叉树的镜像
    实现方法:
    方法(1)
     : 前序遍历,交换左右子树,递归遍历    [ 这里采用 ]
    方法(2)  : 使用非递归的方法,遍历左右子树

    #include <iostream>
    #include <string>
    #include <cstring>
    #include <cstdlib>
    #include <cstdio>
    #include <cmath>
    #include <vector>
    #include <stack>
    #include <deque>
    #include <queue>
    #include <bitset>
    #include <list>
    #include <map>
    #include <set>
    #include <iterator>
    #include <algorithm>
    #include <functional>
    #include <utility>
    #include <sstream>
    #include <climits>
    #include <cassert>
    #define BUG puts("here!!!");
    
    using namespace std;
    struct Node {
    	int value;
    	Node* lchild;
    	Node* rchild;
    };
    void mirror(Node* pn) {
    	if(pn == NULL) return;
    	else {
    		Node* tmp = pn->lchild;
    		pn->lchild = pn->rchild;
    		pn->rchild = tmp;
    		if(pn->lchild) {
    			mirror(pn->lchild);
    		}
    		if(pn->rchild) {
    			mirror(pn->rchild);
    		}
    	}
    }
    int main() {
    	return 0;
    }
    

  • 相关阅读:
    span里设置高度
    Tensorflow2.0语法
    Python-OpenCV中的filter2D()函数
    解决安装tensorflow等速度慢,超时
    keras绘图之pydot和graphviz的导入( pydot` failed to call GraphViz)
    天天向上
    time库
    PythonDraw及turtle库
    TempComvert及-eval的用法
    百分号字符串拼接
  • 原文地址:https://www.cnblogs.com/robbychan/p/3787175.html
Copyright © 2020-2023  润新知