Leetcode 100. 相同的树 解题思路及C++实现
解题思路:
这道题利用递归的方法。
先对当前的节点p和q进行非null判断,如果均为null,则返回true;
如果一个为null,另一个非null,则返回false;
p q均为非null,则比较它们的val,如果val不相等,则false;
如果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++实现相关推荐
- Leetcode 208. 实现 Trie (前缀树) 解题思路及C++实现
解题思路: 对每一个节点开一个数组,数组大小为26(26个字母),数组对应的下表就对应儿子节点的分母. 在插入一个字符串的函数insert中,程序的逻辑就是:遍历一次word中的每个字符,如果当前节点 ...
- Leetcode 313. 超级丑数 解题思路及C++实现
解题思路: 与Leetcode 264. 丑数 II的解题思路一样,均使用最小堆来存储丑数,第i次更新最小堆时,得到第i大的丑数. 可结合Leetcode 264. 丑数 II的解题思路理解:http ...
- 【Day24】 LeetCode算法题 (注释详细+解题思路)[43. 字符串相乘 ] [1800. 最大升序子数组和]
刷题打卡,第 二十四 天 题目一.43. 字符串相乘 题目二.1800. 最大升序子数组和 题目一.43. 字符串相乘 原题链接:43. 字符串相乘 题目描述: 给定两个以字符串形式表示的非负整数 n ...
- Leetcode 234. 回文链表 解题思路及C++实现
解题思路: 先用快慢指针找到链表的中间节点,然后将链表一分为二: 然后将后半部分链表进行翻转,用到三个指针: 接着分别遍历两个链表,逐个比较 val 值,如果出现不相等,就返回 false. /*** ...
- Leetcode 166. 分数到小数 解题思路及C++实现
解题思路: 这道题目的核心是怎么找到循环部分:当出现重复的余数时,就会出现循环. 前面需要考虑比较多种情况:除数是否为0:结果的正负:结果的整数部分和小数部分分开求解. 在求解小数部分的时候,需要用到 ...
- Leetcode 152. 乘积最大子序列 解题思路及C++实现
解题思路: 求乘积最大的子序列,不同于和最大的子序列,两个负数相乘是会得到正数的,所以在遍历数组nums时,需要存储最大和最小的子序列乘积.然后每遍历一个元素,更新一次. class Solution ...
- Leetcode 217. 存在重复元素 解题思路及C++实现
方法一:暴力法 解题思路: 利用 unordered_map 来对出现的数字进行计数,一旦出现有重复数字,就返回true,否则就返回false. class Solution { public:boo ...
- Leetcode 382. 链表随机节点 解题思路及C++实现
解题思路: 因为题目中要求需要常数级的空间复杂度,所以就需要计算链表长度了. /*** Definition for singly-linked list.* struct ListNode {* i ...
- Leetcode 622. 设计循环队列 解题思路及C++实现
解题思路: 使用整数数组来作为队列的数据结构,设置两个位置指针:front 和 end,front指向队首元素,end指向队尾的下一个元素(即为空位置).当 front 和 end 相等时,有两种情况 ...
最新文章
- 常看 Shell: 文本文件操作
- Spring boot介绍
- JZOJ 5385. 【NOIP2017提高A组模拟9.23】Carry
- 不连续曲线 highcharts_无人车运动规划中常用的方法:多项式曲线
- BLAS+BLACS+LAPACK+SCALAPACK安装
- 天津大学计算机专业怎么样,请问天大计算机专业的研究生怎么样啊?
- 【编程珠玑】第十一章 排序 (插入排序和快速排序的深度优化)
- javascript学习之模块拖拽功能的实现
- Floyd算法 C++实现
- C盘AppData文件占用83.7G?
- 超级好上手的告白小程序
- wow服务器人数最新统计,魔兽世界怀旧服服务器人数统计 魔兽世界怀旧服人数比例查询...
- android Tinker 热修复 乐固加固后友盟打多渠道包之后的补丁失效
- HTML设计简单的教务管理系统
- nginx关闭/重启/启动的操作方法
- Android官方文档翻译 九 2.2Adding Action Buttons
- QQ“只爱陌生人”,MSN“不和陌生人说话”
- Contest1003 - 河南工程学院2022级新生周赛(三)
- 最新卡易搜卡盟系统全套/商户+主站+SUP+公告中心
- ubuntu虚拟机双网卡无法上网问题
热门文章
- Win2008 R2 WEB 服务器设置之禁用不必要的服务和关闭端口
- kali linux 渗透测试 01 kali介绍
- Maven整合SSM测试
- [codeforces 508E]Maximum Matching
- Python初始环境搭建和Pycharm的安装
- JAVA中File类的使用
- UNP Chapter 9 - 基本名字与地址转换
- js div asp.net 实现漂浮图片,可以代码控制。
- 项目管理概述学习记录(一)
- python中bin是什么意思_Python之一、#!/usr/bin/python到底是什么意思