• 剑指offer——二叉树的镜像


    题目:操作给定的二叉树,将其变换为源二叉树的镜像。

    思路:前序(根左右的顺序)遍历一棵树,在存储的时候将其左右树进行交换,最后按照处理后的树还原,即得到其镜像。

     1 /**
     2 public class TreeNode {
     3     int val = 0;
     4     TreeNode left = null;
     5     TreeNode right = null;
     6 
     7     public TreeNode(int val) {
     8         this.val = val;
     9 
    10     }
    11 
    12 }
    13 */
    14 //前序遍历这棵树的每个结点,如果遍历的节点有子结点,就交换其子结点,当交换完所有非叶子结点的左右子结点之后,就得到了树的镜像
    15 public class Solution {
    16     public void Mirror(TreeNode root) {
    17         if(root == null){
    18             return ;
    19         }
    20         if(root.left == null&&root.right == null){
    21             return;
    22         }
    23         TreeNode pTemp = root.left;
    24         root.left = root.right;
    25         root.right = pTemp;
    26         Mirror(root.left);
    27         Mirror(root.right);
    28     }
    29 }

     该算法在Mirror函数中又调用了函数Mirror函数,此属于一种递归,为此查阅了递归和嵌套的相关定义:

    https://blog.csdn.net/jlxuqiang/article/details/8809764

    总结如下:

    函数嵌套 函数递归
    嵌套调用是指在函数调用中调用其他函数 函数递归是指在函数调用中再调用该函数自身
    函数嵌套是语言特性,即语言提供的一种程序设计的方法 递归调用是逻辑思想,需要依靠函数嵌套来实现
      递归是需要有边界条件、递归前进段和递归返回段。当边界条件不满足的时候,递归前进,边界满足,则递归返回
  • 相关阅读:
    Jmeter使用实践-接口diff测试
    Jmeter发送HTTPS请求
    Jmeter使用实践- 基础介绍
    Jmeter性能测试工具的使用(Web性能测试)
    使用JMeter创建FTP测试计划
    Jmeter引用cookies进行登录实战
    Jmeter: PATCH方法无法发送参数的暂时解决方法
    Springboot整合Freemarker
    Springboot整合Jsp
    Springboot文件上传
  • 原文地址:https://www.cnblogs.com/10081-AA/p/10725690.html
Copyright © 2020-2023  润新知