83. 删除排序链表中的重复元素
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def deleteDuplicates(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
#不带头节点
if(head==None):
return head
cur=head
while(cur.next):
if(cur.val==cur.next.val):
cur.next=cur.next.next
else:
cur=cur.next
return head
88. 合并两个有序数组
class Solution:
def merge(self, nums1, m, nums2, n):
"""
:type nums1: List[int]
:type m: int
:type nums2: List[int]
:type n: int
:rtype: void Do not return anything, modify nums1 in-place instead.
"""
while m>0 and n>0:
if nums1[m-1]>nums2[n-1]:
nums1[m-1+n]=nums1[m-1]
m=m-1
else:
nums1[m-1+n]=nums2[n-1]
n=n-1
#如果m==0&n>0,nums1[:n]的数据要用nums2的数据填充
#如果m>=&n==0,nums1[:m]的数据是剩余的m,不需要再处理
if n>0:
nums1[:n]=nums2[:n]
100. 相同的树
# 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
"""
if p==None and q==None:
return True
if p==None and q!=None:
return False
if p!=None and q==None:
return False
if p.val!=q.val:
return False
l=self.isSameTree(p.left,q.left)
r=self.isSameTree(p.right,q.right)
return l and r
101.对称二叉树
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def isSymmetric(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
if not root:
return True
return self.recursiveTree(root.left,root.right)
def recursiveTree(self,left,right):
if not left and not right:
return True
if not left or not right:
return False
if left.val==right.val:
return self.recursiveTree(left.left,right.right) and self.recursiveTree(left.right,right.left)
return False