python 两个字符串之间的相关性 python中两个字符串相等_python 两个字符串之间的相关性


技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后到中级难度,最后到hard难度全部完。

目前我选择C语言,Python和Java作为实现语言,因为这三种语言还是比较典型的。由于篇幅和精力有限,其他语言的实现有兴趣的朋友请自己尝试。

初级难度说的差不多的时候,我打算再加点其他内容,我可能会从操作系统到协议栈,从分布式聊到大数据框架,从大数据聊到人工智能,... ...。

如果有任何问题可以在文章后评论或者私信给我

我会持续分享下去,敬请您的关注。

LeetCode 100. 判断两个二叉树是否相等(Same Tree)

问题描述:

给定两个二叉树,编写一个函数来检验它们是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

示例:


python 两个字符串之间的相关性 python中两个字符串相等_python 两个字符串之间的相关性_02


python 两个字符串之间的相关性 python中两个字符串相等_python 两个字符串之间的相关性_03


C语言实现:

第一方法是暴力的方法,按照相同的遍历算法分别遍历p和q,产生两个列表,然后比较两个列表是否相等。

第二种方法是递归比较, 如下图(图中用的是前序遍历,实际算法中遍历顺序无关紧要):


python 两个字符串之间的相关性 python中两个字符串相等_python 两个字符串之间的相关性_04


我们用递归的方法比较p和q的相同位置的节点:

  1. 如果都相等或者都为空就返回true;
  2. 如果出现任何对应节点的值不等,就返回false;
  3. 如果一个节点不为空,但对应的另一个节点为空返回false;

相比来说第二种算法的的效率要更好,空间复杂度也更低。。

我用这种方法来解这道题。

代码如下:


python 两个字符串之间的相关性 python中两个字符串相等_python 两个字符串之间的相关性_05


这种算法在比较两个树的问题中是比较常用的,请大家务必记住


python 两个字符串之间的相关性 python中两个字符串相等_python 两个字符串之间的相关性_06


python语言的实现:

python的实现和C语言实现基本一致

代码如下:


python 两个字符串之间的相关性 python中两个字符串相等_python 两个字符串之间的相关性_07


python 两个字符串之间的相关性 python中两个字符串相等_python 两个字符串之间的相关性_08


Java语言的实现:

Java的实现和C语言的实现基本一致。

代码如下:


python 两个字符串之间的相关性 python中两个字符串相等_python 两个字符串之间的相关性_09


python 两个字符串之间的相关性 python中两个字符串相等_python 两个字符串之间的相关性_10