第一次做二叉树的题,本次实验学习使用了:
- ListNode, TreeNode的使用
- 迭代算法的使用
- Python3的 def使用方法
网站上的代码:
class Solution:
#当第一个数字相等时,判断后续是否重合
def dsf_self(self, head, root):
if head== None:
return True
elif root==None:
return False
if root.val == head.val:
return self.dsf_self(head.next, root.left) or self.dsf_self(head.next, root.right)
else:
return False
#判断第一个字母是否相等
def dsf(self, head, root):
if head==None:
return True
elif root == None:
return False
elif root.val == head.val:
if self.dsf_self(head.next, root.left) or self.dsf_self(head.next, root.right):
return True
else:
return self.dsf(head, root.left) or self.dsf(head, root.right)
else:
return self.dsf(head, root.left) or self.dsf(head, root.right)
#判断两个语句是否为空
def isSubPath(self, head: ListNode, root: TreeNode) -> bool:
"""
:type head: ListNode
:type root: TreeNode
:rtype: bool
"""
if head==None:
return True
elif root == None:
return False
else:
return self.dsf(head, root) or self.dsf(head, root)