zoukankan      html  css  js  c++  java
  • [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;
        }
    }
    
  • 相关阅读:
    wikiquote
    zz 勵志貼,成功是努力加对的方向
    # 电纸书
    # 崔寶秋
    好的程序員
    深度学习引擎
    再见乱码:5分钟读懂MySQL字符集设置
    Linux基础:用tcpdump抓包
    Linux基础:文件查找find
    Linux基础:xargs命令
  • 原文地址:https://www.cnblogs.com/PythonFCG/p/13859963.html
Copyright © 2011-2022 走看看