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

    练习:翻转二叉树

    翻转一棵二叉树。

     

    class Solution {
        public TreeNode invertTree(TreeNode root) {
            if(root==null)
              return null;
            //   if(root.left!=null&&root.right!=null){
            //       int tem=root.left.val;
            //       root.left.val=root.right.val;
            //       root.right.val=tem;
            //   }
           TreeNode temTree = root.right;
           root.right=root.left;
           root.left=temTree;
           root.left= invertTree(root.left);
           root.right=invertTree(root.right);
            return(root);
        }
    }
    

      尝试了几种方法,采用分治的想法这题就比较简单

    之前先尝试了用交换值,不好用,直接定义中间节点就好了,直接左右子节点交换

    练习:相同的树

    判断两个数是否相同

     

     妈耶,破防了,我还以为肯定没有问题

     有进步

    class Solution {
        public boolean isSameTree(TreeNode p, TreeNode q) {
        //   if(q==null||p==null)//这里有问题
           if(q==null&&p==null)
           return true;
           if(p==null&&q!=null||p!=null&&q==null)
           return false;
            if(p!=null&&q!=null&&p.val!=q.val)
            return false;
    
             boolean bleft= isSameTree(p.left,q.left);
             boolean bright= isSameTree(p.right,q.right);
             return bleft&&bright;
        }
    }

    妈耶争了口气,哼!!!!

     

    练习:对称二叉树

     

     1 class Solution {
     2     public boolean isSymmetric(TreeNode root) {
     3         if(root!=null)
     4        return Symmetric(root.left,root.right);
     5        return true;
     6     }
     7 
     8     public boolean Symmetric(TreeNode root1,TreeNode root2) {
     9         if(root1==null&&root2==null)
    10         return true;
    11         if(root1==null&&root2!=null||root1!=null&&root2==null)
    12         return false;
    13         if(root1!=null&root2!=null&&root1.val!=root2.val)
    14         return false;
    15        boolean b = Symmetric(root1.left,root2.right);
    16        boolean b2=Symmetric(root1.right,root2.left);
    17        return b&&b2;
    18     }
    19 }

    由于给的函数的测试用例是单值,故要自己去构造双值函数

  • 相关阅读:
    ShopEx customSchema 定制能够依据客户的需求对站点进行对应功能的加入改动或者删除
    Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案
    NYOJ 46 最少乘法次数
    彻底理解position与anchorPoint
    链路层
    留不住的2015
    javascript笔记
    <html>
    高性能站点建设指南-前端性能优化(一)
    监听器设计模式
  • 原文地址:https://www.cnblogs.com/orange0/p/15502752.html
Copyright © 2011-2022 走看看