验证二叉搜索树 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 云计算(1)—基础知识

    云计算(1)—基础知识一、云计算概述   云计算到底是什么呢?在这个问题上,可谓众说纷纭。比如,在维基百科上的定义是“云计算是一种基于互联网的计算新方式,通过互联网上异构、自治的服务为个人和企业用户提供按需即取的计算”;著名咨询机构Gartner将云计算定义为“云计算是利用互联网技术来将庞大且可伸缩的IT能力集合起来作为服务提供给多个客户的技术”;而IBM则认为“云计算是一种新兴的IT服务交付方式,应用、数据…

    2022年5月15日
    34
  • java认证考试题目_java程序员工资一般多少

    java认证考试题目_java程序员工资一般多少第一部分基础知识练习目标本章对应于《学生指南》各章的内容分别提供了练习题集,包括:●第一章Java入门●第二章数据类型和运算符●第三章流程控制与数组●第四章封装●第五章继承

    2022年8月3日
    25
  • oracle错误904解决方法_遇到Oracle错误4063

    oracle错误904解决方法_遇到Oracle错误4063案例情景——在一次Oracle数据库导出时:C:\DocumentsandSettings\Administrator>explsxy/lsxy@lsxy_dbfile=E:\lsxy.dmpowner=lsxyExport:Release11.2.0.1.0-Productionon星期一11月2614:07:182012Copyright(c)1982,…

    2026年1月31日
    4
  • Java实现水仙花数简单代码

    Java实现水仙花数简单代码//代码如下importjava.util.*;publicclassShuiXianHua{publicstaticvoidmain(String[]args){System.out.println(“判断水仙花数”);inti,j,k=0;//i是个位,j是十位,k是百位Scannerreader=newScanner(System.in);S

    2022年7月7日
    21
  • QFile写文件 中文乱码解决方法

    QFile写文件 中文乱码解决方法QFile*m_pLogFile;m_pLogFile=newQFile("./log.txt");QStringmsgStr="中文";QStringmsgStr2=ChString("testresult2");QStringmsgStr3=QStringLiteral("中文3");m_pLog…

    2022年6月3日
    218
  • 安卓中activity的生命周期_activity生命周期方法

    安卓中activity的生命周期_activity生命周期方法当Activity处于Android应用中运行时,它的活动状态由Android以Activity栈的形式管理。当前活动的Activity位于栈顶。随着不同应用的运行,每个Activity都有可能从活动状态转入非活动状态,也可能从非活动状态转入活动状态。

    2022年8月16日
    8

发表回复

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

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