/*
* @lc app=leetcode.cn id=100 lang=c
*
* [100] 相同的树
*
* https://leetcode-cn.com/problems/same-tree/description/
*
* algorithms
* Easy (51.47%)
* Total Accepted: 16K
* Total Submissions: 31K
* Testcase Example: '[1,2,3]\n[1,2,3]'
*
* 给定两个二叉树,编写一个函数来检验它们是否相同。
*
* 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
*
* 示例 1:
*
* 输入: 1 1
* ⁠ / \ / \
* ⁠ 2 3 2 3
*
* ⁠ [1,2,3], [1,2,3]
*
* 输出: true
*
* 示例 2:
*
* 输入: 1 1
* ⁠ / \
* ⁠ 2 2
*
* ⁠ [1,2], [1,null,2]
*
* 输出: false
*
*
* 示例 3:
*
* 输入: 1 1
* ⁠ / \ / \
* ⁠ 2 1 1 2
*
* ⁠ [1,2,1], [1,1,2]
*
* 输出: false
*
*
*/
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {
if(p == NULL && q == NULL) return true;
if(p != NULL && q != NULL){
if(p -> val != q -> val) return false;
else{
return (isSameTree(p -> left, q -> left) && isSameTree(p -> right, q -> right));
}
}
else return false;
}

一般来说对树的操作,用递归法比较简单,第一个判断是否都为空,当都不为空的情况下判断值是否相等。不相等返回false。相等的话,进行递归,只有当左孩子和右孩子都满足条件的时候返回true,否则就是false了。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

python:

# Definition for a binary tree node.

# class TreeNode:

#     def __init__(self, x):

#         self.val = x

#         self.left = None

#         self.right = None

class Solution:
def isSameTree(self, p, q): """ :type p: TreeNode :type q: TreeNode :rtype: bool """
def issamenode(a,b): if a==None and b==None: return True if (a and b) == None: return False #注意加括号 if a.val !=b.val: return False return issamenode(a.left,b.left) and issamenode(a.right,b.right) return issamenode(p,q)

最新文章

  1. 使用pip安装BeautifulSoup4模块
  2. 学习winform第三方界面weiFenLuo.winFormsUI.Docking.dll
  3. jsp页面缓存清理
  4. DBCC DROPCLEANBUFFERS失效了?
  5. KindEditor得不到textarea值的解决方法
  6. 自定义php安装(2)—mysql安装和php整合
  7. 【移动开发】安卓Lab2(01)
  8. JavaScript高级程序设计(八):基本概念--操作符
  9. Android进阶篇-内存管理
  10. PHP静态化之真静态化
  11. iOS-NSTimer-pause-暂停-引用循环
  12. ES6入门
  13. 相对定位的div没有出现纵向滚动条
  14. 接口自动化:HttpClient + TestNG + Java(一) - 接口测试概述+自动化环境搭建
  15. spring为什么推荐使用构造器注入?
  16. 玩转X-CTR100 l STM32F4 l VIN输入电压采集(锂电池电量计)
  17. Scala--集合
  18. @Param注解的用法解析
  19. C++ REST SDK i
  20. 如何修改bootstrap模态框的backdrop蒙版区域的颜色?

热门文章

  1. 修改mysql编码方式
  2. 1.GlusterFS 初识
  3. python中的 if __name__ == “__main__”: 有什么用
  4. 【图文详解】Zookeeper集群搭建(CentOs6.3)
  5. OC static 和变量
  6. 【牛客挑战赛30D】小A的昆特牌(组合问题抽象到二维平面)
  7. LA 4254 贪心
  8. LA 2038 最少点覆盖
  9. 【[AH2017/HNOI2017]礼物】
  10. maven项目发布到Tomcat丢失jar包