验证二叉搜索树 leetcode_二叉树的最长路径

验证二叉搜索树 leetcode_二叉树的最长路径重写equal()时为什么也得重写hashCode()之深度解读equal方法与hashCode方法渊源 原创  2016年05月08日 23:14:19 标签:java equal方法重写 /java /重写equals方法和hashCode方 10077 转载请注明出处: http://blog.csdn.net/javazejian/art…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在这里插入图片描述
题解

  1. 递归
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */
class Solution { 
   
public:
    vector<int>res;
    bool dfs(TreeNode *p,TreeNode *q){ 
   
        if(p != NULL && q != NULL){ 
   
            if(p->val == q->val && dfs(p->left,q->right) && dfs(p->right,q->left))return true;
        }
        else if(p == NULL && q == NULL)return true;
        return false;
    }
    bool isSymmetric(TreeNode* root) { 
   
        return dfs(root,root);
    }
};
  1. 迭代
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */
class Solution { 
   
public:
    queue<TreeNode *>q;
    bool isSymmetric(TreeNode* root) { 
   
        q.push(root),q.push(root);
        TreeNode *left,*right;
        while(!q.empty()){ 
   
            left = q.front();
            q.pop();
            right = q.front();
            q.pop();
            if(left != NULL && right == NULL || left == NULL && right != NULL)return false;
            if(left != NULL && right != NULL && left->val != right->val)return false;
            if(left == NULL)continue;
            q.push(left->left),q.push(right->right);
            q.push(left->right),q.push(right->left);
        }
        return true;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169154.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • LInux CUDA环境配置

    LInux CUDA环境配置1.安装toolkit(1)cd/home/CUDA_train/software/cuda4.1(2)./cudatoolkit_4.1.28_linux_64_rhel6.x.run指定安装目录(3)配置cudatoolkit环境变量(a)vim~/.bashrc(b)添加如下行,用于添加cudabin的路径到环境变量PATHexportPATH=$PAT

    2022年5月22日
    188
  • 前端HTML空格转义符总结[通俗易懂]

    前端HTML空格转义符总结[通俗易懂]HTML提供了5种空格实体(spaceentity),它们拥有不同的宽度。非断行空格(&nbsp;)是常规空格的宽度,可运行于所有主流浏览器。其他几种空格(&ensp;&emsp;&thinsp;&zwnj;&zwj;)在不同浏览器中宽度各异。&nbsp;它叫不换行空格,全称No-BreakSpace,它是最常见和我们使用最多的…

    2022年10月4日
    0
  • 关于PreferenceActivity的使用和一些问题的解决(自己定义Title和取值)

    关于PreferenceActivity的使用和一些问题的解决(自己定义Title和取值)

    2021年11月28日
    41
  • java反编译工具Java Decompiler

    java反编译工具Java Decompiler我想看一下jsp编译后生成的java文件,用记事本这些看的话要不就乱码,要不就看起来很乱,可读性很低百度了一下java反编译工具JavaDecompiler:这个工具不仅能反编译.class文件,将.class文件转换为可读的.java文件,而且还可以对整个jar包进行反编译。该工具不仅有自己的图形化界面工具JD-GUI,而且还有eclipse和IntelliJIDEA的…

    2022年7月8日
    20
  • 半监督之mixmatch

    半监督之mixmatch自洽正则化:以前遇到标记数据太少,监督学习泛化能力差的时候,人们一般进行训练数据增广,比如对图像做随机平移,缩放,旋转,扭曲,剪切,改变亮度,饱和度,加噪声等。数据增广能产生无数的修改过的新图像,扩大训练数据集。自洽正则化的思路是,对未标记数据进行数据增广,产生的新数据输入分类器,预测结果应保持自洽。即同一个数据增广产生的样本,模型预测结果应保持一致。此规则被加入到损失函数中,有如下形式,其中x是未标记数据,Augment(x)表示对x做随机增广产生的新数据,θ是模型参数,y是模型预测结.

    2022年10月23日
    0
  • Web渗透测试工具[通俗易懂]

    Web渗透测试工具[通俗易懂]一、介绍是用于攻击web应用程序的集成平台。它包含了许多Burp工具,这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。这些工具设计了许多接口,以促进加快攻击应用程序的过程。所有的工具都共享一个能处理并显示HTTP消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架。它主要用来做安全性渗透测试。二、下载安装 2.1地址 链接:https://pan.baidu.com/s/1xhQ…

    2022年8月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号