zoukankan      html  css  js  c++  java
  • 领扣(LeetCode)翻转二叉树 个人题解

    翻转一棵二叉树。

    示例:

    输入:

         4
       /   
      2     7
     /    / 
    1   3 6   9

    输出:

         4
       /   
      7     2
     /    / 
    9   6 3   1

    备注:
    这个问题是受到 Max Howell 的 原问题 启发的 :

    谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。

    这道题比较简单,就是一路判断下去就是了。注意在二叉树为空,或者左右节点为空时做个特判。

    代码如下:

     1 class Solution {
     2     public TreeNode invertTree(TreeNode root) {
     3         FindNext(root);
     4         return root;
     5     }
     6     
     7     public void FindNext(TreeNode t)
     8     {
     9         if(t==null ||(t.left==null && t.right==null))
    10             return ;
    11         else if(t.left!=null && t.right==null)
    12         {
    13             t.right=t.left;
    14             t.left=null;
    15         }
    16         else if(t.left==null && t.right!=null){
    17             t.left=t.right;
    18             t.right=null;
    19         }
    20         else {
    21             TreeNode tmp=t.left;
    22             t.left=t.right;
    23             t.right=tmp;
    24         }
    25         FindNext(t.left);
    26         FindNext(t.right);
    27     }
    28 }
  • 相关阅读:
    感想
    正则表达式
    推送、透传、MQ
    Spring集成Quartz定时任务 ---- 定时执行
    代码优化
    nginx配置详解、端口重定向和504
    JAVA实现EXCEL导出
    js 按需加载
    MyBatis使用(二)分页查询
    MyBatis使用(一)
  • 原文地址:https://www.cnblogs.com/axiangcoding/p/9960086.html
Copyright © 2011-2022 走看看