• 二叉树的镜像


    请完成一个函数,输入一个二叉树,该函数输出它的镜像。

    例如输入:

            4
          /  
       2      7
      /      / 
    1   3  6    9
    镜像输出:

            4
          /   
        7      2
      /       / 
    9   6   3    1

    示例 1:

    输入:root = [4,2,7,1,3,6,9]
    输出:[4,7,2,9,6,3,1]
     

    限制:

    0 <= 节点个数 <= 1000

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public TreeNode mirrorTree(TreeNode root) {
            if(root==null) return null;
            return swap(root); 
        }
        private TreeNode swap(TreeNode node){
            if(node==null) return null;
            if( node.left!=null || node.right!=null){
                TreeNode newnode=new TreeNode();
                newnode=node.left;
                node.left=node.right;
                node.right=newnode;
                swap(node.left);
                swap(node.right);
            }
            return node;
    
        }
    }

    解题思路:主要还是使用递归思想;对每一个节点都进行判断;如果有左子树或者右子树就进行节点之间的交换即可。

  • 相关阅读:
    Arthas(阿尔萨斯)学习记录
    Apache Flume 学习记录
    XA 协议 学习记录
    Federation(联邦) 架构
    服务注册与发现 Consul Consultemplate
    稳态&敏态
    分布式事务 方案对比
    TongWeb
    tensorflow学习011——Dropout抑制过拟合
    tensorflow学习014——tf.data运用实例
  • 原文地址:https://www.cnblogs.com/-jiuqi/p/13410405.html
Copyright © 2020-2023  润新知