验证二叉搜索树 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


相关推荐

  • DELPHI XE5安装

    DELPHI XE5安装1.安装XE52.HNFJ-DPADCW-BDWCFU-FPNNQDF4-CTSDHV-RDFCFE-FEANHNFK-BCN8NN-78N53D-H4RS激活成功教程补丁使用方法:(1).复制压缩包内的“R

    2022年7月1日
    25
  • leetcode78子集_A是B的子集

    leetcode78子集_A是B的子集给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]] 提示:1 <= nums.length <= 10-10 <= nums[i] <= 10nums 中的所有元素 互

    2022年8月8日
    5
  • lqr算法优点(lqg控制)

    由来自INTERNAT的资料整理:LQR(linearquadraticregulator)即线性二次型调节器,其对象是现代控制理论中以状态空间形式给出的线性系统,而目标函数为对象状态和控制输入的二次型函数。LQR最优设计指设计是出的状态反馈控制器K要使二次型目标函数J取最小值,而K由权矩阵Q与R唯一决定,故此Q、R的选择尤为重要。LQR理论是现代控制理论中发展最早也最为成熟的…

    2022年4月15日
    89
  • elf 变异upx 脱壳

    elf 变异upx 脱壳题目是某ctf题首先使用IDA打开:函数极少,有壳。查看函数这个跳转比较可疑下面进行IDA动态调试进入loc_52D516再进入直到找到jmpr13运行到这里,F8跳转直接retn下断点F9,直接retn下断点F9重复,直到遇到一个大跳转单步,然后return来到了程序入口下面dump脱壳(转储的意思)。dump要使用脚本,因为我是个菜鸡,直接在网上找的脚本,通用的。idc脚本下载可以存放在ida里面有个脚本的文件夹idc,源码后面会附上首先在D盘下

    2022年7月12日
    19
  • TCP拥塞控制基本原理

    TCP拥塞控制基本原理从拥塞控制原理来看,我们有两种方案来解决TCP拥塞控制问题。但是IP层并不提供显式的网路拥塞控制反馈。TCP采用的是方式是让每一个发送方根据感受的网络拥塞程度来限制其向连接发送流量的速率。拥塞控制TCP拥塞控制常被称为加性增,乘性减。这样的方式能够在拥塞的情形下,快速减少发送速率,从而避免严重的拥塞现象出现。慢启动TCP连接在刚开始建立的阶段,发送速率起始慢,T…

    2022年6月24日
    27
  • SwipeRefreshLayout简单使用

    SwipeRefreshLayout简单使用Activity:importjava.text.DateFormat;importjava.util.Date;importandroid.os.Bundle;importandroid.os.Handler;importandroid.support.v4.widget.SwipeRefreshLayout;importandroid.support

    2022年6月25日
    27

发表回复

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

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