zoukankan      html  css  js  c++  java
  • Lc226_翻转二叉树

    package com.example.demo;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 226. 翻转二叉树
     * 翻转一棵二叉树。
     * <p>
     * 示例:
     * <p>
     * 输入:
     * <p>
     * 4
     * /   
     * 2     7
     * /    / 
     * 1   3 6   9
     * 输出:
     * <p>
     * 4
     * /   
     * 7     2
     * /    / 
     * 9   6 3   1
     * 备注:
     * 这个问题是受到 Max Howell 的 原问题 启发的 :
     * <p>
     * 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。
     */
    public class Lc226 {
        public static TreeNode invertTree(TreeNode root) {
            if(root == null){
                return root;
            }
            TreeNode left = invertTree(root.right);
            TreeNode right = invertTree(root.left);
            root.right = right;
            root.left = left;
            return root;
        }
    
        static List<Integer> res = new ArrayList<>();
        public static List<Integer> preOrder(TreeNode root){
            if(root != null){
                res.add(root.val);
                preOrder(root.left);
                preOrder(root.right);
            }
            return res;
        }
        public static void main(String[] args) {
    
            Integer[] arr = new Integer[]{1, 2, 3, 4, 5, 6, 7};
            TreeNode root = CreateNode.createTree(arr).get(0);
            invertTree(root);
            preOrder(root).forEach(n->{
                System.out.println(n);
            });
    
        }
    
    
    }
    
    
  • 相关阅读:
    HUAS 1482 lsy的后宫(DP+矩阵快速幂)
    HUAS 1483 mex(离线+线段树)
    oracle 分页
    oracle 表查询(二)
    oracle 表查询(一)
    oracle 表的管理
    oracle 用户管理
    oracle sql*plus常用命令
    挑选数据库
    oracle sequence用法
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/13130709.html
Copyright © 2011-2022 走看看