验证二叉搜索树 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/168870.html原文链接:https://javaforall.net

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


相关推荐

  • idea19.3.4激活码【2021.7最新】

    (idea19.3.4激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlMLZPB5EL5Q-eyJsaWN…

    2022年3月20日
    125
  • java反编译工具luyten增强版

    java反编译工具luyten增强版Luyten 作为一款 java 反编译工具 具有反编译精准 可设置选项多等特点原版 Luyten 支持反编译 jar zp class 格式 支持文件拖拽打开 但是不支持 jar 包内的 jar 包进行编译 不支持 war 包 不支持中文提示我在此基础之上增加了以下特性 1 增加了注册表注册右键菜单特性 2 增加了对于包内部压缩 jar 包的解析 3 增加了中英文切换 4 修复了打开不同文件夹下同名文件 后面打开的文件无法关闭的问题 5 针对同名文件增加增加 title 自增索引前缀用以区分 6 增加了对于 war 包的解析支持

    2025年11月4日
    1
  • python学习—— IPy 强大的IP地址解析模块

    python学习—— IPy 强大的IP地址解析模块       最近在忙着做计算机网络的课程设计,打算写一个可以扫描内网主机的扫描工具。学习过程中安利到了许多python新姿势,IPy模块就是其中一个。1.IPy模块。       在IP地址规划中,涉及到计算大量的IP地址,包括网段、网络掩码、广播地址、…

    2025年6月23日
    3
  • HTML解析之DOMContentLoaded和onload

    HTML解析之DOMContentLoaded和onload说在前面在很久很久以前,我在封装自己的JQuery库时就使用过DOMContentLoaded,觉得这个知识点看看别的文章就行了,不过现在我想把它记下来。JS代码与body标签的位置关系一个HTML初学时会遇到的问题,一个html页面中js代码应该放到哪里?<!–如果script标签在body前面–><head>…&lt…

    2025年5月28日
    4
  • 解决idea中maven项目的pom文件不会自动下载jar包问题 + 更新不完整依赖命令

    解决idea中maven项目的pom文件不会自动下载jar包问题 + 更新不完整依赖命令不会自动下载jar包idea昨天还在正常使用,结果今天发现pom文件中的依赖不会自动下载了,最后百度找到了解决方案: setting——>maven——>去掉workoffline的勾,问题解决!但是我之前用着还是没有这个问题的,百度发现可能是Intellijideasetting显示出错/或者电脑运行过久出错,在经历几次重启I…

    2022年5月11日
    76
  • loadrunner11使用教程_loadrunner12

    loadrunner11使用教程_loadrunner12

    2022年10月9日
    5

发表回复

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

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