• [leetCode]剑指 Offer 27. 二叉树的镜像


    在这里插入图片描述

    递归

    在这里插入图片描述
    通过观察可以发现,只需交换非叶子节点的左右子节点即可完成镜像。
    通过前序遍历,从上至下进行递归,如果非叶子节点则交换其子节点,如果为叶子节点,则返回其本身(只有一个节点的情况)。

    /**
     * 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;
            if(root.left == null && root.right == null) return root;
            TreeNode temp = root.left;
            root.left = root.right;
            root.right = temp;
            if(root.left != null)
                mirrorTree(root.left);
            if(root.right != null)
                mirrorTree(root.right);
            return root;
        }
    }
    

    辅助栈

    /**
     * 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;
            LinkedList<TreeNode> stack = new LinkedList<>();
            stack.push(root);
            while(!stack.isEmpty()){
                TreeNode node = stack.pop();
                if(node.left != null ) stack.push(node.left);
                if(node.right != null) stack.push(node.right); 
                if(node.left == null && node.right == null) continue;//跳过叶子节点
                TreeNode temp = node.left;
                node.left = node.right;
                node.right = temp;
            }
            return root;
        }
    }
    
  • 相关阅读:
    Django
    索引
    idea启动tomcat后控制台日志显示中文乱码问题
    Elasticsearch
    Hive 开窗函数
    hadoop-3.1.1集群搭建
    hadoop-2.6.5集群搭建
    spark集群搭建(spark版本2.3.2)
    Zookeeper
    spark-submit(spark版本2.3.2)
  • 原文地址:https://www.cnblogs.com/PythonFCG/p/13859963.html
Copyright © 2020-2023  润新知