验证二叉搜索树 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)
上一篇 2022年8月9日 上午9:36
下一篇 2022年8月9日 上午9:36


相关推荐

  • cmd 远程连接_mysql在cmd中无法访问

    cmd 远程连接_mysql在cmd中无法访问mysql-h192.168.0.1-P80-uroot-p注意的是参数使用都是要和值一起中间不能有空格…..

    2022年10月13日
    5
  • halcon算子详解_rdd算子

    halcon算子详解_rdd算子以上三个方法操作都是对RDD进行的聚合操作。1、reduce()与fold()方法是对同种元素类型数据的RDD进行操作,即必须同构。其返回值返回一个同样类型的新元素。valnums=Array(1,2,3,4,5,6,7,8,9)valnumsRdd=sc.parallelize(nums,3)valreduce=numsRdd.reduce((a,b)=>a+b)2、fo

    2025年7月8日
    4
  • jmeter发送kafka数据key错误且无法生成时间戳解决方案「建议收藏」

    jmeter发送kafka数据key错误且无法生成时间戳解决方案「建议收藏」前言:最近在做kafka、mq、redis、fink、kudu等在中间件性能压测,压测kafka的时候遇到了一个问题,我用jmeter往kafka发消息没有时间戳,同样的数据我用python发送就有时间戳,且jmeter会自动生成错误的变量key,那我是怎么解决的呢,容我一一道来!一、jmeter怎么往kafka发送数据jmeter往kafka发送数据我之前有写过博客,大家可以参考下,遇到我前言说的问题就可以参考本篇文章二、jmeter生成错误key解决方案我们用了kafka插件后jmeter中引入

    2022年8月31日
    8
  • python进阶(1)Lambda表达式「建议收藏」

    python进阶(1)Lambda表达式「建议收藏」Lambda表达式lambda表示的是匿名函数,不需要用def来声明,一句话就可以声明出一个函数语法函数名=lambda参数:返回值注意点1.函数的参数可以有多个,多个参数之间用逗号隔

    2022年7月29日
    6
  • mathtype大括号三个公式_latex大括号左对齐

    mathtype大括号三个公式_latex大括号左对齐数学方程输入对于很多理工科朋友来说是一件让人头疼的事情。不仅是数学方程本身就纷繁复杂花样百出,各种输入语法更是劝退无数人。然而很多看似复杂的东西其实并非如想象中的难,抓住本质即可快速入门。今天和大家分享下如何快速入门LaTeX,在XMind2020中轻松输入方程。01LaTeX是什么LaTeX是一种基于ΤΕΧ的排版系统,具有方便而强大的数学公式排版能力。日常中大家常见的高印刷质量的…

    2022年10月10日
    4
  • 配置企业网络中的三层交换机

    配置企业网络中的三层交换机

    2022年3月11日
    51

发表回复

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

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