• [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;
        }
    }
    
  • 相关阅读:
    js格式化货币金额
    Mac idea maven 创建web项目
    The string "--" is not permitted within comments.
    Java从数据库读取页面树形菜单
    oracle 查询重复数据并且删除, 只保留一条数据重复数据
    SSM框架---使用MyBatis Generator自动创建代码
    前端 NPM常用命令行
    前端常用命令行
    Angular 常用命令行
    JS/JQuery 文档加载完成
  • 原文地址:https://www.cnblogs.com/PythonFCG/p/13859963.html
Copyright © 2020-2023  润新知