解题思路:

这道题利用递归的方法。

  1. 先对当前的节点p和q进行非null判断,如果均为null,则返回true;

  2. 如果一个为null,另一个非null,则返回false;

  3. p q均为非null,则比较它们的val,如果val不相等,则false;

  4. 如果val相等,则递归判断其左右子节点是否相同。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:bool isSameTree(TreeNode* p, TreeNode* q) {if(!p && !q) return true;else if(!p && q || p && !q) return false;else if(p->val != q->val) return false;else{return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);}}
};

Leetcode 100. 相同的树 解题思路及C++实现相关推荐

  1. Leetcode 208. 实现 Trie (前缀树) 解题思路及C++实现

    解题思路: 对每一个节点开一个数组,数组大小为26(26个字母),数组对应的下表就对应儿子节点的分母. 在插入一个字符串的函数insert中,程序的逻辑就是:遍历一次word中的每个字符,如果当前节点 ...

  2. Leetcode 313. 超级丑数 解题思路及C++实现

    解题思路: 与Leetcode 264. 丑数 II的解题思路一样,均使用最小堆来存储丑数,第i次更新最小堆时,得到第i大的丑数. 可结合Leetcode 264. 丑数 II的解题思路理解:http ...

  3. 【Day24】 LeetCode算法题 (注释详细+解题思路)[43. 字符串相乘 ] [1800. 最大升序子数组和]

    刷题打卡,第 二十四 天 题目一.43. 字符串相乘 题目二.1800. 最大升序子数组和 题目一.43. 字符串相乘 原题链接:43. 字符串相乘 题目描述: 给定两个以字符串形式表示的非负整数 n ...

  4. Leetcode 234. 回文链表 解题思路及C++实现

    解题思路: 先用快慢指针找到链表的中间节点,然后将链表一分为二: 然后将后半部分链表进行翻转,用到三个指针: 接着分别遍历两个链表,逐个比较 val 值,如果出现不相等,就返回 false. /*** ...

  5. Leetcode 166. 分数到小数 解题思路及C++实现

    解题思路: 这道题目的核心是怎么找到循环部分:当出现重复的余数时,就会出现循环. 前面需要考虑比较多种情况:除数是否为0:结果的正负:结果的整数部分和小数部分分开求解. 在求解小数部分的时候,需要用到 ...

  6. Leetcode 152. 乘积最大子序列 解题思路及C++实现

    解题思路: 求乘积最大的子序列,不同于和最大的子序列,两个负数相乘是会得到正数的,所以在遍历数组nums时,需要存储最大和最小的子序列乘积.然后每遍历一个元素,更新一次. class Solution ...

  7. Leetcode 217. 存在重复元素 解题思路及C++实现

    方法一:暴力法 解题思路: 利用 unordered_map 来对出现的数字进行计数,一旦出现有重复数字,就返回true,否则就返回false. class Solution { public:boo ...

  8. Leetcode 382. 链表随机节点 解题思路及C++实现

    解题思路: 因为题目中要求需要常数级的空间复杂度,所以就需要计算链表长度了. /*** Definition for singly-linked list.* struct ListNode {* i ...

  9. Leetcode 622. 设计循环队列 解题思路及C++实现

    解题思路: 使用整数数组来作为队列的数据结构,设置两个位置指针:front 和 end,front指向队首元素,end指向队尾的下一个元素(即为空位置).当 front 和 end 相等时,有两种情况 ...

最新文章

  1. 常看 Shell: 文本文件操作
  2. Spring boot介绍
  3. JZOJ 5385. 【NOIP2017提高A组模拟9.23】Carry
  4. 不连续曲线 highcharts_无人车运动规划中常用的方法:多项式曲线
  5. BLAS+BLACS+LAPACK+SCALAPACK安装
  6. 天津大学计算机专业怎么样,请问天大计算机专业的研究生怎么样啊?
  7. 【编程珠玑】第十一章 排序 (插入排序和快速排序的深度优化)
  8. javascript学习之模块拖拽功能的实现
  9. Floyd算法 C++实现
  10. C盘AppData文件占用83.7G?
  11. 超级好上手的告白小程序
  12. wow服务器人数最新统计,魔兽世界怀旧服服务器人数统计 魔兽世界怀旧服人数比例查询...
  13. android Tinker 热修复 乐固加固后友盟打多渠道包之后的补丁失效
  14. HTML设计简单的教务管理系统
  15. nginx关闭/重启/启动的操作方法
  16. Android官方文档翻译 九 2.2Adding Action Buttons
  17. QQ“只爱陌生人”,MSN“不和陌生人说话”
  18. Contest1003 - 河南工程学院2022级新生周赛(三)
  19. 最新卡易搜卡盟系统全套/商户+主站+SUP+公告中心
  20. ubuntu虚拟机双网卡无法上网问题

热门文章

  1. Win2008 R2 WEB 服务器设置之禁用不必要的服务和关闭端口
  2. kali linux 渗透测试 01 kali介绍
  3. Maven整合SSM测试
  4. [codeforces 508E]Maximum Matching
  5. Python初始环境搭建和Pycharm的安装
  6. JAVA中File类的使用
  7. UNP Chapter 9 - 基本名字与地址转换
  8. js div asp.net 实现漂浮图片,可以代码控制。
  9. 项目管理概述学习记录(一)
  10. python中bin是什么意思_Python之一、#!/usr/bin/python到底是什么意思