日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

剑指offer-python解答

發(fā)布時間:2024/7/5 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 剑指offer-python解答 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
版權聲明: https://blog.csdn.net/XiaoYi_Eric/article/details/81452014 </div><link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css"><div id="content_views" class="markdown_views prism-atom-one-dark"><!-- flowchart 箭頭圖標 勿刪 --><svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg><h3><a name="t0"></a><a id="1_0" target="_blank"></a>1.二維數組中的查找</h3>

題目: 在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。

**思路:**遍歷每一行,查找該元素是否在該行之中。

# -*- coding:utf-8 -*- class Solution:# array 二維列表def Find(self, target, array):# write code herefor line in array:if target in line:return Truereturn False

if name==main:
target=2
array=[[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7]]
solution=Solution()
ans=solution.Find(target,array)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

2.替換空格

題目: 請實現一個函數,將一個字符串中的每個空格替換成“%20”。例如,當字符串為We Are Happy.則經過替換之后的字符串為We%20Are%20Happy。

**思路:**利用字符串中的replace直接替換即可。

# -*- coding:utf-8 -*- class Solution:# s 源字符串def replaceSpace(self, s):# write code heretemp = s.replace(" ", "%20")return temp

if name==main:
s=‘We Are Happy’
solution=Solution()
ans=solution.replaceSpace(s)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3.從尾到頭打印鏈表

**題目:**輸入一個鏈表,按鏈表值從尾到頭的順序返回一個ArrayList。

**思路:**將鏈表中的值記錄到list之中,然后進行翻轉list。

# -*- coding:utf-8 -*- class ListNode:def __init__(self, x):self.val = xself.next = None

class Solution:
# 返回從尾部到頭部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
# write code here
l=[]
while listNode:
l.append(listNode.val)
listNode=listNode.next
return l[::-1]

if name==main:
A1 = ListNode(1)
A2 = ListNode(2)
A3 = ListNode(3)
A4 = ListNode(4)
A5 = ListNode(5)

A1<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>A2 A2<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>A3 A3<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>A4 A4<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>A5solution<span class="token operator">=</span>Solution<span class="token punctuation">(</span><span class="token punctuation">)</span> ans<span class="token operator">=</span>solution<span class="token punctuation">.</span>printListFromTailToHead<span class="token punctuation">(</span>A1<span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>ans<span class="token punctuation">)</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

4.重建二叉樹

**題目:**輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹并返回。

**題解:**首先前序遍歷的第一個元素為二叉樹的根結點,那么便能夠在中序遍歷之中找到根節(jié)點,那么在根結點左側則是左子樹,假設長度為M.在根結點右側,便是右子樹,假設長度為N。然后在前序遍歷根節(jié)點后面M長度的便是左子樹的前序遍歷序列,再后面的N個長度便是右子樹的后序遍歷的長度。

# -*- coding:utf-8 -*- class TreeNode:def __init__(self, x):self.val = xself.left = Noneself.right = None

class Solution:
# 返回構造的TreeNode根節(jié)點
def reConstructBinaryTree(self, pre, tin):
# write code here
if len(pre)0:
return None
if len(pre)1:
return TreeNode(pre[0])
else:
flag=TreeNode(pre[0])
flag.left=self.reConstructBinaryTree(pre[1:tin.index(pre[0])+1],tin[:tin.index(pre[0])])
flag.right=self.reConstructBinaryTree(pre[tin.index(pre[0])+1:],tin[tin.index(pre[0])+1:])
return flag

if name==main:
solution=Solution()
pre=list(map(int,input().split(’,’)))
tin=list(map(int,input().split(’,’)))
ans=solution.reConstructBinaryTree(pre,tin)
print(ans.val)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

5.用兩個棧實現隊列

**題目:**用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。

**題解:**申請兩個棧Stack1和Stack2,Stack1當作輸入,Stack2當作pop。當Stack2空的時候,將Stack1進行反轉,并且輸入到Stack2。

# -*- coding:utf-8 -*- class Solution:def __init__(self):self.Stack1=[]self.Stack2=[]def push(self, node):# write code hereself.Stack1.append(node)def pop(self):# return xxif self.Stack2==[]:while self.Stack1:self.Stack2.append(self.Stack1.pop())return self.Stack2.pop()return self.Stack2.pop()

if name==main:
solution = Solution()
solution.push(1)
solution.push(2)
solution.push(3)
print(solution.pop())

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

6.旋轉數組的最小數字

**題目:**把一個數組最開始的若干個元素搬到數組的末尾,我們稱之為數組的旋轉。輸入一個非減排序的數組的一個旋轉,輸出旋轉數組的最小元素。例如數組{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該數組的最小值為1。NOTE:給出的所有元素都大于0,若數組大小為0,請返回0。

**題解:**遍歷數組尋找數組最小值。

# -*- coding:utf-8 -*- class Solution:def minNumberInRotateArray(self, rotateArray):# write code hereminnum=999999for i in range(0,len(rotateArray)):if minnum>rotateArray[i]:minnum=rotateArray[i]if minnum:return minnumelse:return 0

if name==main:
solution=Solution()
rotateArray=list(map(int,input().split(’,’)))
ans=solution.minNumberInRotateArray(rotateArray)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

7.斐波那契數列

**題目:**大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項。n<=39。

**題解:**遞歸和非遞歸方法。

# -*- coding:utf-8 -*- class Solution:def Fibonacci(self, n):# write code hereif n==0:return 0if n==1:return 1Fib=[0 for i in range(0,n+1)]Fib[0],Fib[1]=0,1for i in range(2,n+1):Fib[i]=Fib[i-1]+Fib[i-2]return Fib[n]def Fibonacci1(self,n):if n==0:return 0if n==1 or n==2:return 1else:return self.Fibonacci1(n-1)+self.Fibonacci1(n-2)

if name==main:
solution=Solution()
n=int(input())
ans=solution.Fibonacci1(n)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

8.跳臺階

**題目:**一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先后次序不同算不同的結果)。

**題解:**ans[n]=ans[n-1]+ans[n-2]

class Solution:def jumpFloor(self, number):# write code hereif number==0:return 0if number==1:return 1if number==2:return 2ans=[0 for i in range(0,number+1)]ans[1],ans[2]=1,2for i in range(3,number+1):ans[i]=ans[i-1]+ans[i-2]return ans[number]

if name == main:
solution = Solution()
n=int(input())
ans=solution.jumpFloor(n)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

9.變態(tài)跳臺階

**題目:**一只青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。

**題解:**ans[n]=ans[n-1]+ans[n-2]+ans[n-3]+…+ans[n-n],ans[n-1]=ans[n-2]+ans[n-3]+…+ans[n-n],ans[n]=2*ans[n-1]。

# -*- coding:utf-8 -*- class Solution:def jumpFloorII(self, number):# write code hereif number==1:return 1if number==2:return 2return 2*self.jumpFloorII(number-1)

if name==main:
solution=Solution()
n=int(input())
ans=solution.jumpFloorII(n)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

10.矩形覆蓋

**題目:**我們可以用21的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個21的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法?

**題解:**新增加的小矩陣豎著放,則方法與n-1時相同,新增加的小矩陣橫著放,則方法與n-2時相同,于是f(n)=f(n-1)+f(n-2)。

# -*- coding:utf-8 -*- class Solution:def rectCover(self, number):# write code hereif number==0:return 0if number==1:return 1Fib=[0 for i in range(0,number+1)]Fib[1],Fib[2]=1,2for i in range(3,number+1):Fib[i]=Fib[i-1]+Fib[i-2]return Fib[number]

if name==main:
solution=Solution()
n=int(input())
ans=solution.rectCover(n)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

11.二進制中1的個數

**題目:**輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼表示。

**題解:**每次進行左移一位,然后與1進行相與,如果是1則進行加1。

# -*- coding:utf-8 -*- class Solution:def NumberOf1(self, n):# write code herecount = 0for i in range(32):count += (n >> i) & 1return count

if name==main:
solution=Solution()
n=int(input())
ans=solution.NumberOf1(n)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

12.數值的整次方

**題目:**給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。

# -*- coding:utf-8 -*- class Solution:def Power(self, base, exponent):# write code hereans=1for i in range(0,abs(exponent)):ans=ans*baseif exponent>0:return anselse:return 1/ans

if name==main:
solution=Solution()
base=float(input())
exponent=int(input())
ans=solution.Power(base,exponent)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

13.調整數組順序使奇數位于偶數前面

**題目:**輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位于數組的前半部分,所有的偶數位于位于數組的后半部分,并保證奇數和奇數,偶數和偶數之間的相對位置不變。

**題解:**申請奇數數組和偶數數組,分別存放奇數值和偶數值,數組相加便為結果。

# -*- coding:utf-8 -*- class Solution:def reOrderArray(self, array):# write code herearray1=[]#奇數array2=[]#偶數 <span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token builtin">len</span><span class="token punctuation">(</span>array<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span><span class="token keyword">if</span> array<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token operator">%</span><span class="token number">2</span><span class="token operator">!=</span><span class="token number">0</span><span class="token punctuation">:</span>array1<span class="token punctuation">.</span>append<span class="token punctuation">(</span>array<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token keyword">else</span><span class="token punctuation">:</span>array2<span class="token punctuation">.</span>append<span class="token punctuation">(</span>array<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">)</span>ans<span class="token operator">=</span>array1<span class="token operator">+</span>array2<span class="token keyword">return</span> ans

if name==main:
solution=Solution()
array=list(map(int,input().split(’,’)))
ans=solution.reOrderArray(array)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

14.鏈表中倒數第K個節(jié)點

**題目:**輸入一個鏈表,輸出該鏈表中倒數第k個結點。

**題解:**反轉鏈表,尋找第K個節(jié)點。

# -*- coding:utf-8 -*- class ListNode:def __init__(self, x):self.val = xself.next = None

class Solution:
def FindKthToTail(self, head, k):
# write code here
#反轉鏈表
if head is None or head.next is None:
return head
pre=None #指向上一個節(jié)點
while head:
#先用temp保存當前節(jié)點的下一個節(jié)點信息
temp=head.next
#保存好next之后,便可以指向上一個節(jié)點
head.next=pre
#讓pre,head指向下一個移動的節(jié)點
pre=head
head=temp
# 尋找第K個元素的位置
for i in range(1,k):
pre=pre.next
temp=pre
return temp

if name==main:
solution=Solution()
k=3
p1=ListNode(1)
p2=ListNode(2)
p3=ListNode(3)
p4=ListNode(4)
p1.next=p2
p2.next=p3
p3.next=p4

ans<span class="token operator">=</span>solution<span class="token punctuation">.</span>FindKthToTail<span class="token punctuation">(</span>p1<span class="token punctuation">,</span>k<span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>ans<span class="token punctuation">.</span>val<span class="token punctuation">)</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

15.反轉鏈表

**題目:**輸入一個鏈表,反轉鏈表后,輸出新鏈表的表頭。

# -*- coding:utf-8 -*- class ListNode:def __init__(self, x):self.val = xself.next = None

class Solution:
# 返回ListNode
def ReverseList(self, pHead):
# write code here
if pHead is None or pHead.next is None:
return pHead
pre=None
while pHead:
#暫存當前節(jié)點的下一個節(jié)點信息
temp=pHead.next
#反轉節(jié)點
pHead.next=pre
#進行下一個節(jié)點
pre = pHead
pHead=temp
return pre

if name==main:
solution=Solution()
p1=ListNode(1)
p2=ListNode(2)
p3=ListNode(3)
p1.next=p2
p2.next=p3
ans=solution.ReverseList(p1)
print(ans.val)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

16.合并兩個排序的列表

**題目:**輸入兩個單調遞增的鏈表,輸出兩個鏈表合成后的鏈表,當然我們需要合成后的鏈表滿足單調不減規(guī)則。

**題解:**將兩個鏈表之中的數值轉換到列表之中,并進行排序,將排序后的列表構造成鏈表。

# -*- coding:utf-8 -*- class ListNode:def __init__(self, x):self.val = xself.next = None

class Solution:
# 返回合并后列表
def Merge(self,pHead1,pHead2):
# write code here
if pHead1 is None and pHead2 is None:
return None
num1,num2=[],[]
while pHead1:
num1.append(pHead1.val)
pHead1=pHead1.next
while pHead2:
num2.append(pHead2.val)
pHead2=pHead2.next
ans=num1+num2
ans.sort()
head=ListNode(ans[0])
pre=head
for i in range(1,len(ans)):
node=ListNode(ans[i])
pre.next=node
pre=pre.next
return head

if name==main:
solution=Solution()
pHead1_1 = ListNode(1)
pHead1_2 = ListNode(3)
pHead1_3 = ListNode(5)
pHead1_1.next=pHead1_2
pHead1_2.next=pHead1_3

pHead2_1 <span class="token operator">=</span> ListNode<span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span> pHead2_2 <span class="token operator">=</span> ListNode<span class="token punctuation">(</span><span class="token number">4</span><span class="token punctuation">)</span> pHead2_3 <span class="token operator">=</span> ListNode<span class="token punctuation">(</span><span class="token number">6</span><span class="token punctuation">)</span> pHead2_1<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>pHead2_2 pHead2_2<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>pHead2_3 ans<span class="token operator">=</span>solution<span class="token punctuation">.</span>Merge<span class="token punctuation">(</span>pHead1_1<span class="token punctuation">,</span>pHead2_1<span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>ans<span class="token punctuation">)</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

17.樹的子結構

**題目:**輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構)。

**題解:**將樹轉變?yōu)橹行蛐蛄?#xff0c;然后轉變?yōu)閟tr類型,最后判斷是否包含。

# -*- coding:utf-8 -*- class TreeNode:def __init__(self, x):self.val = xself.left = Noneself.right = None

class Solution:
def HasSubtree(self, pRoot1, pRoot2):
# write code here
if pRoot1 is None or pRoot2 is None:
return False
pRoot1_result,pRoot2_result=[],[]
self.order_traversal(pRoot1,pRoot1_result)
self.order_traversal(pRoot2,pRoot2_result)
str1=’’.join(str(i) for i in pRoot1_result)
str2=’’.join(str(i) for i in pRoot2_result)
print(str1,str2)
if str2 in str1:
return True
else:
return False

<span class="token keyword">def</span> <span class="token function">order_traversal</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span>root<span class="token punctuation">,</span>result<span class="token punctuation">)</span><span class="token punctuation">:</span><span class="token keyword">if</span> <span class="token operator">not</span> root<span class="token punctuation">:</span><span class="token keyword">return</span>self<span class="token punctuation">.</span>order_traversal<span class="token punctuation">(</span>root<span class="token punctuation">.</span>left<span class="token punctuation">,</span>result<span class="token punctuation">)</span>result<span class="token punctuation">.</span>append<span class="token punctuation">(</span>root<span class="token punctuation">.</span>val<span class="token punctuation">)</span>self<span class="token punctuation">.</span>order_traversal<span class="token punctuation">(</span>root<span class="token punctuation">.</span>right<span class="token punctuation">,</span>result<span class="token punctuation">)</span>

if name==main:
solution=Solution()
pRootA1 = TreeNode(1)
pRootA2 = TreeNode(2)
pRootA3 = TreeNode(3)
pRootA4 = TreeNode(4)
pRootA5 = TreeNode(5)
pRootA1.left=pRootA2
pRootA1.right=pRootA3
pRootA2.left=pRootA4
pRootA2.right=pRootA5

pRootB2 <span class="token operator">=</span> TreeNode<span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span> pRootB4 <span class="token operator">=</span> TreeNode<span class="token punctuation">(</span><span class="token number">4</span><span class="token punctuation">)</span> pRootB5 <span class="token operator">=</span> TreeNode<span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span> pRootB2<span class="token punctuation">.</span>left<span class="token operator">=</span>pRootB4 pRootB2<span class="token punctuation">.</span>right <span class="token operator">=</span> pRootB5 ans<span class="token operator">=</span>solution<span class="token punctuation">.</span>HasSubtree<span class="token punctuation">(</span>pRootA1<span class="token punctuation">,</span>pRootB2<span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>ans<span class="token punctuation">)</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

18.二叉樹的鏡像

題目: 操作給定的二叉樹,將其變換為源二叉樹的鏡像。

輸入描述:

? 源二叉樹
8
/
6 10
/ \ /
5 7 9 11
鏡像二叉樹
8
/
10 6
/ \ /
11 9 7 5

**思路:**遞歸實現反轉每個子節(jié)點

# -*- coding:utf-8 -*- class TreeNode:def __init__(self, x):self.val = xself.left = Noneself.right = None

class Solution:
# 返回鏡像樹的根節(jié)點
def Mirror(self, root):
# write code here
# A1_order_result=[]
# self.order_traversal(A1,A1_order_result)
if root is None:
return
if root.left is None and root.right is None:
return
temp=root.left
root.left=root.right
root.right=temp

<span class="token keyword">if</span> root <span class="token keyword">is</span> <span class="token operator">not</span> <span class="token boolean">None</span><span class="token punctuation">:</span>self<span class="token punctuation">.</span>Mirror<span class="token punctuation">(</span>root<span class="token punctuation">.</span>left<span class="token punctuation">)</span><span class="token keyword">if</span> root <span class="token keyword">is</span> <span class="token operator">not</span> <span class="token boolean">None</span><span class="token punctuation">:</span>self<span class="token punctuation">.</span>Mirror<span class="token punctuation">(</span>root<span class="token punctuation">.</span>right<span class="token punctuation">)</span><span class="token keyword">def</span> <span class="token function">order_traversal</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span>root<span class="token punctuation">,</span>result<span class="token punctuation">)</span><span class="token punctuation">:</span><span class="token keyword">if</span> <span class="token operator">not</span> root<span class="token punctuation">:</span><span class="token keyword">return</span>self<span class="token punctuation">.</span>order_traversal<span class="token punctuation">(</span>root<span class="token punctuation">.</span>left<span class="token punctuation">,</span>result<span class="token punctuation">)</span>result<span class="token punctuation">.</span>append<span class="token punctuation">(</span>root<span class="token punctuation">.</span>val<span class="token punctuation">)</span>self<span class="token punctuation">.</span>order_traversal<span class="token punctuation">(</span>root<span class="token punctuation">.</span>right<span class="token punctuation">,</span>result<span class="token punctuation">)</span>

if name==main:
A1 = TreeNode(8)
A2 = TreeNode(6)
A3 = TreeNode(10)
A4 = TreeNode(5)
A5 = TreeNode(7)
A6 = TreeNode(9)
A7 = TreeNode(11)
A1.left=A2
A1.right=A3
A2.left=A4
A2.right=A5
A3.left=A6
A3.right=A7

temp1<span class="token operator">=</span><span class="token punctuation">[</span><span class="token punctuation">]</span> solution<span class="token operator">=</span>Solution<span class="token punctuation">(</span><span class="token punctuation">)</span> solution<span class="token punctuation">.</span>order_traversal<span class="token punctuation">(</span>A1<span class="token punctuation">,</span>temp1<span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>temp1<span class="token punctuation">)</span> solution<span class="token punctuation">.</span>Mirror<span class="token punctuation">(</span>A1<span class="token punctuation">)</span> solution<span class="token punctuation">.</span>order_traversal<span class="token punctuation">(</span>A1<span class="token punctuation">,</span>temp1<span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>temp1<span class="token punctuation">)</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55

19.順時針打印矩陣

題目:

輸入一個矩陣,按照從外向里以順時針的順序依次打印出每一個數字, 例如,如果輸入如下矩陣:1 2 3 45 6 7 89 10 11 1213 14 15 16 則依次打印出數字 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

**思路:**每次打印圈,但要判斷最后一次是打印橫還是豎,另外判斷數據是否已存在。

# -*- coding:utf-8 -*- class Solution:# matrix類型為二維列表,需要返回列表def printMatrix(self, matrix):# write code herem,n=len(matrix),len(matrix[0])res = []if n==1 and m==1:res.append(matrix[0][0])return resfor k in range(0,(min(m,n)+1)//2):[res.append(matrix[k][i]) for i in range(k, n - k)][res.append(matrix[j][n-k-1]) for j in range(k,m-k) if matrix[j][n-k-1] not in res][res.append(matrix[m-k-1][j]) for j in range(n-k-1,k-1,-1) if matrix[m-k-1][j] not in res][res.append(matrix[j][k]) for j in range(m-1-k,k-1,-1) if matrix[j][k] not in res]return res

if name==main:
solution=Solution()
m,n=1,5
matrix=[]
for i in range(0,m):
matrix.append(list(map(int,input().split(’ '))))
print(matrix)
ans=solution.printMatrix(matrix)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

20.包含Min函數的棧

**題目:**定義棧的數據結構,請在該類型中實現一個能夠得到棧中所含最小元素的min函數。

# -*- coding:utf-8 -*- class Solution:def __init__(self):self.num=[]def push(self, node):# write code hereself.num.append(node)def pop(self):# write code hereself.num.pop()def top(self):# write code herenumlen = len(self.num)return self.num[numlen-1]def min(self):# write code herereturn min(self.num)

if name==main:
solution = Solution()
solution.push(1)
solution.push(2)
solution.push(3)
solution.push(4)
solution.pop()
print(solution.top())
print(solution.min())

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

21.棧的壓入彈出序列

**題目:**輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。(注意:這兩個序列的長度是相等的)。

**題解:**新構建一個中間棧,來模擬棧的輸入和棧的輸出,比對輸入結果和輸出結果是否相等。

# -*- coding:utf-8 -*- class Solution:def IsPopOrder(self, pushV, popV):# write code hereif len(pushV)==1 and len(popV)==1 and pushV[0]!=popV[0]:return False helpV<span class="token operator">=</span><span class="token punctuation">[</span><span class="token punctuation">]</span>pushV<span class="token punctuation">.</span>reverse<span class="token punctuation">(</span><span class="token punctuation">)</span>popV<span class="token punctuation">.</span>reverse<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token comment">#模擬給定棧的壓入和壓出</span>helpV<span class="token punctuation">.</span>append<span class="token punctuation">(</span>pushV<span class="token punctuation">[</span><span class="token builtin">len</span><span class="token punctuation">(</span>pushV<span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span>pushV<span class="token punctuation">.</span>pop<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token keyword">while</span> <span class="token boolean">True</span><span class="token punctuation">:</span><span class="token keyword">if</span> helpV<span class="token punctuation">[</span><span class="token builtin">len</span><span class="token punctuation">(</span>helpV<span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token operator">!=</span>popV<span class="token punctuation">[</span><span class="token builtin">len</span><span class="token punctuation">(</span>popV<span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">:</span>helpV<span class="token punctuation">.</span>append<span class="token punctuation">(</span>pushV<span class="token punctuation">[</span><span class="token builtin">len</span><span class="token punctuation">(</span>pushV<span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span>pushV<span class="token punctuation">.</span>pop<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token keyword">if</span> helpV<span class="token punctuation">[</span><span class="token builtin">len</span><span class="token punctuation">(</span>helpV<span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token operator">==</span>popV<span class="token punctuation">[</span><span class="token builtin">len</span><span class="token punctuation">(</span>popV<span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">:</span>helpV<span class="token punctuation">.</span>pop<span class="token punctuation">(</span><span class="token punctuation">)</span>popV<span class="token punctuation">.</span>pop<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token keyword">if</span> pushV<span class="token operator">==</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">and</span> popV<span class="token operator">==</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">and</span> helpV<span class="token operator">==</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">:</span><span class="token keyword">return</span> <span class="token boolean">True</span><span class="token keyword">if</span> pushV<span class="token operator">==</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">and</span> popV<span class="token punctuation">[</span><span class="token builtin">len</span><span class="token punctuation">(</span>popV<span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token operator">!=</span>helpV<span class="token punctuation">[</span><span class="token builtin">len</span><span class="token punctuation">(</span>helpV<span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">:</span><span class="token keyword">return</span> <span class="token boolean">False</span>

if name==main:
solution=Solution()
push=list(map(int,input().split(’ ‘)))
pop=list(map(int,input().split(’ ')))
ans=solution.IsPopOrder(push,pop)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

22.從上往下打印二叉樹

**題目:**從上往下打印出二叉樹的每個節(jié)點,同層節(jié)點從左至右打印。

**思路:**遞歸,每次將左子樹結果和右子樹結果存到結果集之中。

# -*- coding:utf-8 -*- class TreeNode:def __init__(self, x):self.val = xself.left = Noneself.right = None

class Solution:
# 返回從上到下每個節(jié)點值列表,例:[1,2,3]
def PrintFromTopToBottom(self, root):
# write code here
if root is None:
return []
ans=[]
ans.append(root.val)
self.orderans(root,ans)
return ans

<span class="token keyword">def</span> <span class="token function">orderans</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span>root<span class="token punctuation">,</span>ans<span class="token punctuation">)</span><span class="token punctuation">:</span><span class="token keyword">if</span> <span class="token operator">not</span> root<span class="token punctuation">:</span><span class="token keyword">return</span><span class="token keyword">if</span> root<span class="token punctuation">.</span>left<span class="token punctuation">:</span>ans<span class="token punctuation">.</span>append<span class="token punctuation">(</span>root<span class="token punctuation">.</span>left<span class="token punctuation">.</span>val<span class="token punctuation">)</span><span class="token keyword">if</span> root<span class="token punctuation">.</span>right<span class="token punctuation">:</span>ans<span class="token punctuation">.</span>append<span class="token punctuation">(</span>root<span class="token punctuation">.</span>right<span class="token punctuation">.</span>val<span class="token punctuation">)</span>self<span class="token punctuation">.</span>orderans<span class="token punctuation">(</span>root<span class="token punctuation">.</span>left<span class="token punctuation">,</span> ans<span class="token punctuation">)</span>self<span class="token punctuation">.</span>orderans<span class="token punctuation">(</span>root<span class="token punctuation">.</span>right<span class="token punctuation">,</span>ans<span class="token punctuation">)</span>

if name==main:
solution=Solution()
A1 = TreeNode(1)
A2 = TreeNode(2)
A3 = TreeNode(3)
A4 = TreeNode(4)
A5 = TreeNode(5)

A1<span class="token punctuation">.</span>left<span class="token operator">=</span>A2 A1<span class="token punctuation">.</span>right<span class="token operator">=</span>A3 A2<span class="token punctuation">.</span>left<span class="token operator">=</span>A4 A2<span class="token punctuation">.</span>right<span class="token operator">=</span>A5 ans<span class="token operator">=</span>solution<span class="token punctuation">.</span>PrintFromTopToBottom<span class="token punctuation">(</span>A1<span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>ans<span class="token punctuation">)</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

23.二叉樹的后續(xù)遍歷序列

**題目:**輸入一個整數數組,判斷該數組是不是某二叉搜索樹的后序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的數組的任意兩個數字都互不相同。

**思路:**二叉搜索樹的特性是所有左子樹值都小于中節(jié)點,所有右子樹的值都大于中節(jié)點,遞歸遍歷左子樹和右子樹的值。

# -*- coding:utf-8 -*- class Solution:def VerifySquenceOfBST(self, sequence):# write code hereif not sequence:return Falseif len(sequence)==1:return Truei=0while sequence[i]<sequence[-1]:i=i+1k=ifor j in range(i,len(sequence)-1):if sequence[j]<sequence[-1]:return False leftsequence<span class="token operator">=</span>sequence<span class="token punctuation">[</span><span class="token punctuation">:</span>k<span class="token punctuation">]</span>rightsequence<span class="token operator">=</span>sequence<span class="token punctuation">[</span>k<span class="token punctuation">:</span><span class="token builtin">len</span><span class="token punctuation">(</span>sequence<span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span>leftans<span class="token operator">=</span><span class="token boolean">True</span>rightans<span class="token operator">=</span><span class="token boolean">True</span><span class="token keyword">if</span> <span class="token builtin">len</span><span class="token punctuation">(</span>leftsequence<span class="token punctuation">)</span><span class="token operator">&gt;</span><span class="token number">0</span><span class="token punctuation">:</span>self<span class="token punctuation">.</span>VerifySquenceOfBST<span class="token punctuation">(</span>leftsequence<span class="token punctuation">)</span><span class="token keyword">if</span> <span class="token builtin">len</span><span class="token punctuation">(</span>rightsequence<span class="token punctuation">)</span><span class="token operator">&gt;</span><span class="token number">0</span><span class="token punctuation">:</span>self<span class="token punctuation">.</span>VerifySquenceOfBST<span class="token punctuation">(</span>rightsequence<span class="token punctuation">)</span><span class="token keyword">return</span> leftans <span class="token operator">and</span> rightans

if name==main:
solution=Solution()
num=list(map(int,input().split(’ ')))
ans=solution.VerifySquenceOfBST(num)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

24.二叉樹中和為某一值的路徑

**題目:**輸入一顆二叉樹的根節(jié)點和一個整數,打印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。(注意: 在返回值的list中,數組長度大的數組靠前)。

**思路:**利用遞歸的方法,計算加左子樹和右子樹之后的值,當參數較多是,可以將結果添加到函數變量之中。

# -*- coding:utf-8 -*- class TreeNode:def __init__(self, x):self.val = xself.left = Noneself.right = None

class Solution:
# 返回二維列表,內部每個列表表示找到的路徑
def FindPath(self, root, expectNumber):
# write code here
if not root:
return []
ans=[]
path=[]
self.dfs(root,expectNumber,ans,path)
ans.sort()
return ans

<span class="token keyword">def</span> <span class="token function">dfs</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span>root<span class="token punctuation">,</span>target<span class="token punctuation">,</span>ans<span class="token punctuation">,</span>path<span class="token punctuation">)</span><span class="token punctuation">:</span><span class="token keyword">if</span> <span class="token operator">not</span> root<span class="token punctuation">:</span><span class="token keyword">return</span>path<span class="token punctuation">.</span>append<span class="token punctuation">(</span>root<span class="token punctuation">.</span>val<span class="token punctuation">)</span><span class="token keyword">if</span> root<span class="token punctuation">.</span>left <span class="token keyword">is</span> <span class="token boolean">None</span> <span class="token operator">and</span> root<span class="token punctuation">.</span>right <span class="token keyword">is</span> <span class="token boolean">None</span> <span class="token operator">and</span> target<span class="token operator">==</span>root<span class="token punctuation">.</span>val<span class="token punctuation">:</span>ans<span class="token punctuation">.</span>append<span class="token punctuation">(</span>path<span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token keyword">if</span> root<span class="token punctuation">.</span>left<span class="token punctuation">:</span>self<span class="token punctuation">.</span>dfs<span class="token punctuation">(</span>root<span class="token punctuation">.</span>left<span class="token punctuation">,</span>target<span class="token operator">-</span>root<span class="token punctuation">.</span>val<span class="token punctuation">,</span>ans<span class="token punctuation">,</span>path<span class="token punctuation">)</span><span class="token keyword">if</span> root<span class="token punctuation">.</span>right<span class="token punctuation">:</span>self<span class="token punctuation">.</span>dfs<span class="token punctuation">(</span>root<span class="token punctuation">.</span>right<span class="token punctuation">,</span>target<span class="token operator">-</span>root<span class="token punctuation">.</span>val<span class="token punctuation">,</span>ans<span class="token punctuation">,</span>path<span class="token punctuation">)</span>path<span class="token punctuation">.</span>pop<span class="token punctuation">(</span><span class="token punctuation">)</span>

if name==main:
A1=TreeNode(10)
A2=TreeNode(8)
A3=TreeNode(12)
A4=TreeNode(4)
A5=TreeNode(2)
A6=TreeNode(2)

A1<span class="token punctuation">.</span>left<span class="token operator">=</span>A2 A1<span class="token punctuation">.</span>right<span class="token operator">=</span>A3 A2<span class="token punctuation">.</span>left<span class="token operator">=</span>A4 A2<span class="token punctuation">.</span>right<span class="token operator">=</span>A5 A5<span class="token punctuation">.</span>left<span class="token operator">=</span>A6expectNumber<span class="token operator">=</span><span class="token number">22</span> solution<span class="token operator">=</span>Solution<span class="token punctuation">(</span><span class="token punctuation">)</span> ans<span class="token operator">=</span>solution<span class="token punctuation">.</span>FindPath<span class="token punctuation">(</span>A1<span class="token punctuation">,</span>expectNumber<span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>ans<span class="token punctuation">)</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

25.復雜鏈表的復制

**題目:**輸入一個復雜鏈表(每個節(jié)點中有節(jié)點值,以及兩個指針,一個指向下一個節(jié)點,另一個特殊指針指向任意一個節(jié)點),返回結果為復制后復雜鏈表的head。(注意,輸出結果中請不要返回參數中的節(jié)點引用,否則判題程序會直接返回空)。

**思路:**將大問題轉變?yōu)樾栴},每次都進行復制頭部節(jié)點,然后進行遞歸,每次同樣處理頭部節(jié)點。

# -*- coding:utf-8 -*- class RandomListNode:def __init__(self, x):self.label = xself.next = Noneself.random = None

class Solution:
# 返回 RandomListNode
def Clone(self, pHead):
# write code here
# 復制頭部節(jié)點
if pHead is None:
return None

newHead<span class="token operator">=</span>RandomListNode<span class="token punctuation">(</span>pHead<span class="token punctuation">.</span>label<span class="token punctuation">)</span>newHead<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>pHead<span class="token punctuation">.</span><span class="token builtin">next</span>newHead<span class="token punctuation">.</span>random<span class="token operator">=</span>pHead<span class="token punctuation">.</span>random<span class="token comment"># 遞歸其他節(jié)點</span>newHead<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>self<span class="token punctuation">.</span>Clone<span class="token punctuation">(</span>pHead<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token punctuation">)</span><span class="token keyword">return</span> newHead

if name==main:
A1=RandomListNode(2)
A2=RandomListNode(3)
A3=RandomListNode(4)
A4=RandomListNode(5)
A5=RandomListNode(6)

A1<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>A2 A1<span class="token punctuation">.</span>random<span class="token operator">=</span>A3A2<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>A3 A2<span class="token punctuation">.</span>random<span class="token operator">=</span>A4A3<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>A4 A3<span class="token punctuation">.</span>random<span class="token operator">=</span>A5A4<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>A5 A4<span class="token punctuation">.</span>random<span class="token operator">=</span>A3solution<span class="token operator">=</span>Solution<span class="token punctuation">(</span><span class="token punctuation">)</span> ans<span class="token operator">=</span>solution<span class="token punctuation">.</span>Clone<span class="token punctuation">(</span>A1<span class="token punctuation">)</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

26.二叉搜索樹與雙向列表

**題目:**輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表。要求不能創(chuàng)建任何新的結點,只能調整樹中結點指針的指向。

**思路:**遞歸將根結點和左子樹的最右節(jié)點和右子樹的最左節(jié)點進行連接起來。

# -*- coding:utf-8 -*- class TreeNode:def __init__(self, x):self.val = xself.left = Noneself.right = None class Solution:def Convert(self, pRootOfTree):# write code hereif pRootOfTree is None:return pRootOfTreeif pRootOfTree.left is None and pRootOfTree.right is None:return pRootOfTree <span class="token comment">#處理左子樹</span>self<span class="token punctuation">.</span>Convert<span class="token punctuation">(</span>pRootOfTree<span class="token punctuation">.</span>left<span class="token punctuation">)</span>left<span class="token operator">=</span>pRootOfTree<span class="token punctuation">.</span>left<span class="token keyword">if</span> left<span class="token punctuation">:</span><span class="token keyword">while</span> left<span class="token punctuation">.</span>right<span class="token punctuation">:</span>left<span class="token operator">=</span>left<span class="token punctuation">.</span>rightpRootOfTree<span class="token punctuation">.</span>left<span class="token punctuation">,</span>left<span class="token punctuation">.</span>right<span class="token operator">=</span>left<span class="token punctuation">,</span>pRootOfTree<span class="token comment">#處理右子樹</span>self<span class="token punctuation">.</span>Convert<span class="token punctuation">(</span>pRootOfTree<span class="token punctuation">.</span>right<span class="token punctuation">)</span>right<span class="token operator">=</span>pRootOfTree<span class="token punctuation">.</span>right<span class="token keyword">if</span> right<span class="token punctuation">:</span><span class="token keyword">while</span> right<span class="token punctuation">.</span>left<span class="token punctuation">:</span>right<span class="token operator">=</span>right<span class="token punctuation">.</span>leftpRootOfTree<span class="token punctuation">.</span>right<span class="token punctuation">,</span>right<span class="token punctuation">.</span>left<span class="token operator">=</span>right<span class="token punctuation">,</span>pRootOfTree<span class="token keyword">while</span> pRootOfTree<span class="token punctuation">.</span>left<span class="token punctuation">:</span>pRootOfTree<span class="token operator">=</span>pRootOfTree<span class="token punctuation">.</span>left<span class="token keyword">return</span> pRootOfTree

if name==main:
A1 = TreeNode(7)
A2 = TreeNode(5)
A3 = TreeNode(15)
A4 = TreeNode(2)
A5 = TreeNode(6)
A6 = TreeNode(8)
A7 = TreeNode(19)
A8 = TreeNode(24)

A1<span class="token punctuation">.</span>left<span class="token operator">=</span>A2 A1<span class="token punctuation">.</span>right<span class="token operator">=</span>A3 A2<span class="token punctuation">.</span>left<span class="token operator">=</span>A4 A2<span class="token punctuation">.</span>right<span class="token operator">=</span>A5 A3<span class="token punctuation">.</span>left<span class="token operator">=</span>A6 A3<span class="token punctuation">.</span>right<span class="token operator">=</span>A7 A7<span class="token punctuation">.</span>right<span class="token operator">=</span>A8solution<span class="token operator">=</span>Solution<span class="token punctuation">(</span><span class="token punctuation">)</span> solution<span class="token punctuation">.</span>Convert<span class="token punctuation">(</span>A1<span class="token punctuation">)</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57

27.字符串的排列

**題目:**輸入一個字符串,按字典序打印出該字符串中字符的所有排列。例如輸入字符串abc,則打印出由字符a,b,c所能排列出來的所有字符串abc,acb,bac,bca,cab和cba。

**輸入:**輸入一個字符串,長度不超過9(可能有字符重復),字符只包括大小寫字母。

**思路:**通過將第k位的字符提取到最前面,然后進行和后面的每個字符進行交換,得到所有結果集。

# -*- coding:utf-8 -*- class Solution:def Permutation(self, ss):# write code hereif not ss:return []res=[]self.helper(ss,res,'')return sorted(list(set(res))) <span class="token keyword">def</span> <span class="token function">helper</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span>ss<span class="token punctuation">,</span>res<span class="token punctuation">,</span>path<span class="token punctuation">)</span><span class="token punctuation">:</span><span class="token keyword">if</span> <span class="token operator">not</span> ss<span class="token punctuation">:</span>res<span class="token punctuation">.</span>append<span class="token punctuation">(</span>path<span class="token punctuation">)</span><span class="token keyword">else</span><span class="token punctuation">:</span><span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token builtin">len</span><span class="token punctuation">(</span>ss<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>self<span class="token punctuation">.</span>helper<span class="token punctuation">(</span>ss<span class="token punctuation">[</span><span class="token punctuation">:</span>i<span class="token punctuation">]</span><span class="token operator">+</span>ss<span class="token punctuation">[</span>i<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">:</span><span class="token punctuation">]</span><span class="token punctuation">,</span>res<span class="token punctuation">,</span>path<span class="token operator">+</span>ss<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">)</span>

if name==main:
str=‘abbcDeefg’
str1=‘abbc’
solution=Solution()
ans=solution.Permutation(str1)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

28.數組中出現次數超過一般的數字

**題目:**數組中有一個數字出現的次數超過數組長度的一半,請找出這個數字。例如輸入一個長度為9的數組{1,2,3,2,2,2,5,4,2}。由于數字2在數組中出現了5次,超過數組長度的一半,因此輸出2。如果不存在則輸出0

**題解:**利用list列表來存放每個數出現的次數ans[numbers[i]]=ans[numbers[i]]+1。

# -*- coding:utf-8 -*- class Solution:def MoreThanHalfNum_Solution(self, numbers):# write code herenumlen=len(numbers)halflen=numlen//2maxans=0ans=[0 for i in range(0,1000)]for i in range(0,len(numbers)):ans[numbers[i]]=ans[numbers[i]]+1if ans[numbers[i]]>maxans:maxans=numbers[i]ans.sort()ans.reverse()res=ans[0]if res>halflen:return maxanselse:return 0

if name==main:
num=list(map(int,input().split(’,’)))
solution=Solution()
ans=solution.MoreThanHalfNum_Solution(num)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

29.最小的K個數

**題目:**輸入n個整數,找出其中最小的K個數,例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4。

# -*- coding:utf-8 -*- class Solution:def GetLeastNumbers_Solution(self, tinput, k):# write code hereif k>len(tinput):return []tinput.sort()return tinput[:k]

if name==main:
num=list(map(int,input().split(’,’)))
k=int(input())
solution=Solution()
ans=solution.GetLeastNumbers_Solution(num,k)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

30.連續(xù)子數組的最大和

**題目:**HZ偶爾會拿些專業(yè)問題來忽悠那些非計算機專業(yè)的同學。今天測試組開完會后,他又發(fā)話了:在古老的一維模式識別中,常常需要計算連續(xù)子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,并期望旁邊的正數會彌補它呢?例如:{6,-3,-2,7,-15,1,2,2},連續(xù)子向量的最大和為8(從第0個開始,到第3個為止)。你會不會被他忽悠住?(子向量的長度至少是1)

# -*- coding:utf-8 -*- class Solution:def FindGreatestSumOfSubArray(self, array):# write code heremaxsum,tempsum=array[0],array[0]for i in range(1,len(array)):if tempsum<0:tempsum=array[i]else:tempsum = tempsum + array[i]if tempsum>maxsum:maxsum=tempsumreturn maxsum

if name==main:
array=list(map(int,input().split(’,’)))
solution=Solution()
ans=solution.FindGreatestSumOfSubArray(array)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

31.整數中1出現的次數

**題目:**求出113的整數中1出現的次數,并算出1001300的整數中1出現的次數?為此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對于后面問題他就沒轍了。ACMer希望你們幫幫他,并把問題更加普遍化,可以很快的求出任意非負整數區(qū)間中1出現的次數(從1 到 n 中1出現的次數)。

**思路:**對每個數字的每位進行分解,含有1則結果加1。

# -*- coding:utf-8 -*- class Solution:def NumberOf1Between1AndN_Solution(self, n):# write code hereans=0for i in range(1,n+1):tempans=0while i!=0:eachnum=i%10i=i//10if eachnum==1:tempans=tempans+1ans=ans+tempansreturn ans

if name==main:
n=130
solution=Solution()
ans=solution.NumberOf1Between1AndN_Solution(n)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

32.把數組排成最小的數

**題目:**輸入一個正整數數組,把數組里所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小的一個。例如輸入數組{3,32,321},則打印出這三個數字能排成的最小數字為321323。

**思路:**將數組轉換成字符串之后,進行兩兩比較字符串的大小,比如3,32的大小由332和323確定,即3+32和32+3確定。

# -*- coding:utf-8 -*- class Solution:def PrintMinNumber(self, numbers):# write code hereif not numbers:return ""num = map(str, numbers)for i in range(0,len(numbers)):for j in range(i,len(numbers)):if int(str(numbers[i])+str(numbers[j]))>int(str(numbers[j])+str(numbers[i])):numbers[i],numbers[j]=numbers[j],numbers[i]ans=''for i in range(0,len(numbers)):ans=ans+str(numbers[i])return ans

if name==main:
numbers=[3,32,321]
solution=Solution()
ans=solution.PrintMinNumber(numbers)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

33.丑數

**題目:**把只包含質因子2、3和5的數稱作丑數(Ugly Number)。例如6、8都是丑數,但14不是,因為它包含質因子7。習慣上我們把1當做是第一個丑數。求按從小到大的順序的第N個丑數。

**思路:**每一個丑數必然是由之前的某個丑數與2,3或5的乘積得到的,這樣下一個丑數就用之前的丑數分別乘以2,3,5,找出這三這種最小的并且大于當前最大丑數的值,即為下一個要求的丑數。

# -*- coding:utf-8 -*- class Solution:def GetUglyNumber_Solution(self, index):# write code hereif (index <= 0):return 0uglyList = [1]indexTwo = 0indexThree = 0indexFive = 0for i in range(index-1):newUgly = min(uglyList[indexTwo]*2, uglyList[indexThree]*3, uglyList[indexFive]*5)uglyList.append(newUgly)if (newUgly % 2 == 0):indexTwo += 1if (newUgly % 3 == 0):indexThree += 1if (newUgly % 5 == 0):indexFive += 1return uglyList[-1]

if name==main:
solution=Solution()
index=200
ans=solution.GetUglyNumber_Solution(index)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

34.第一個只出現一次的字符

**題目:**在一個字符串(0<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,并返回它的位置, 如果沒有則返回 -1。

**思路:**找出所有出現一次的字符,然后進行遍歷找到第一次出現字符的位置。

# -*- coding:utf-8 -*- class Solution:def FirstNotRepeatingChar(self, s):# write code hereif not s:return -1sset=set(s)dict={}for c in sset:dict[c]=0for i in range(0,len(s)):dict[s[i]]=dict[s[i]]+1onetime=[]for c in dict:if dict[c]==1:onetime.append(c) <span class="token keyword">if</span> onetime <span class="token keyword">is</span> <span class="token boolean">None</span><span class="token punctuation">:</span><span class="token keyword">return</span> <span class="token operator">-</span><span class="token number">1</span><span class="token keyword">else</span><span class="token punctuation">:</span>index<span class="token operator">=</span><span class="token number">0</span><span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token builtin">len</span><span class="token punctuation">(</span>s<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span><span class="token keyword">if</span> s<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token keyword">in</span> onetime<span class="token punctuation">:</span>index<span class="token operator">=</span>i<span class="token keyword">break</span><span class="token keyword">return</span> index

if name==main:
s=‘abbddebbac’
solution=Solution()
ans=solution.FirstNotRepeatingChar(s)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

35.數組中的逆序對

**題目描述:**在數組中的兩個數字,如果前面一個數字大于后面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個數組中的逆序對的總數P。并將P對1000000007取模的結果輸出。 即輸出P%1000000007。

**輸入描述:**題目保證輸入的數組中沒有的相同的數字。

數據范圍:
對于%50的數據,size<=10^4
對于%75的數據,size<=10^5
對于%100的數據,size<=2*10^5

示例1

輸入 1,2,3,4,5,6,7,0

輸出 7

# -*- coding:utf-8 -*- class Solution:def InversePairs(self, data):# write code hereglobal countcount = 0 <span class="token keyword">def</span> <span class="token function">A</span><span class="token punctuation">(</span>array<span class="token punctuation">)</span><span class="token punctuation">:</span><span class="token keyword">global</span> count<span class="token keyword">if</span> <span class="token builtin">len</span><span class="token punctuation">(</span>array<span class="token punctuation">)</span> <span class="token operator">&lt;=</span> <span class="token number">1</span><span class="token punctuation">:</span><span class="token keyword">return</span> arrayk <span class="token operator">=</span> <span class="token builtin">int</span><span class="token punctuation">(</span><span class="token builtin">len</span><span class="token punctuation">(</span>array<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token number">2</span><span class="token punctuation">)</span>left <span class="token operator">=</span> A<span class="token punctuation">(</span>array<span class="token punctuation">[</span><span class="token punctuation">:</span>k<span class="token punctuation">]</span><span class="token punctuation">)</span>right <span class="token operator">=</span> A<span class="token punctuation">(</span>array<span class="token punctuation">[</span>k<span class="token punctuation">:</span><span class="token punctuation">]</span><span class="token punctuation">)</span>l <span class="token operator">=</span> <span class="token number">0</span>r <span class="token operator">=</span> <span class="token number">0</span>result <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token keyword">while</span> l <span class="token operator">&lt;</span> <span class="token builtin">len</span><span class="token punctuation">(</span>left<span class="token punctuation">)</span> <span class="token operator">and</span> r <span class="token operator">&lt;</span> <span class="token builtin">len</span><span class="token punctuation">(</span>right<span class="token punctuation">)</span><span class="token punctuation">:</span><span class="token keyword">if</span> left<span class="token punctuation">[</span>l<span class="token punctuation">]</span> <span class="token operator">&lt;</span> right<span class="token punctuation">[</span>r<span class="token punctuation">]</span><span class="token punctuation">:</span>result<span class="token punctuation">.</span>append<span class="token punctuation">(</span>left<span class="token punctuation">[</span>l<span class="token punctuation">]</span><span class="token punctuation">)</span>l <span class="token operator">+=</span> <span class="token number">1</span><span class="token keyword">else</span><span class="token punctuation">:</span>result<span class="token punctuation">.</span>append<span class="token punctuation">(</span>right<span class="token punctuation">[</span>r<span class="token punctuation">]</span><span class="token punctuation">)</span>r <span class="token operator">+=</span> <span class="token number">1</span>count <span class="token operator">+=</span> <span class="token builtin">len</span><span class="token punctuation">(</span>left<span class="token punctuation">)</span> <span class="token operator">-</span> lresult <span class="token operator">+=</span> left<span class="token punctuation">[</span>l<span class="token punctuation">:</span><span class="token punctuation">]</span>result <span class="token operator">+=</span> right<span class="token punctuation">[</span>r<span class="token punctuation">:</span><span class="token punctuation">]</span><span class="token keyword">return</span> resultA<span class="token punctuation">(</span>data<span class="token punctuation">)</span><span class="token keyword">return</span> count <span class="token operator">%</span> <span class="token number">1000000007</span>

if name==main:
data=[1,2,3,4,5,6,7,0]
solution=Solution()
ans=solution.InversePairs(data)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

36.兩個鏈表的第一個公共節(jié)點

**題目:**輸入兩個鏈表,找出它們的第一個公共結點。

# -*- coding:utf-8 -*- class ListNode:def __init__(self, x):self.val = xself.next = None class Solution:def FindFirstCommonNode(self, pHead1, pHead2):# write code herelist1 = []list2 = []node1 = pHead1node2 = pHead2while node1:list1.append(node1.val)node1 = node1.nextwhile node2:if node2.val in list1:return node2else:node2 = node2.next

if name==main:
A1 = ListNode(1)
A2 = ListNode(2)
A3 = ListNode(3)
A1.next=A2
A2.next=A3

B4 <span class="token operator">=</span> ListNode<span class="token punctuation">(</span><span class="token number">4</span><span class="token punctuation">)</span> B5 <span class="token operator">=</span> ListNode<span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span> B4<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>B5C6<span class="token operator">=</span>ListNode<span class="token punctuation">(</span><span class="token number">6</span><span class="token punctuation">)</span> C7<span class="token operator">=</span>ListNode<span class="token punctuation">(</span><span class="token number">7</span><span class="token punctuation">)</span>A3<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>C6 B5<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>C6 C6<span class="token punctuation">.</span><span class="token builtin">next</span><span class="token operator">=</span>C7solution<span class="token operator">=</span>Solution<span class="token punctuation">(</span><span class="token punctuation">)</span> ans<span class="token operator">=</span>solution<span class="token punctuation">.</span>FindFirstCommonNode<span class="token punctuation">(</span>A1<span class="token punctuation">,</span>B4<span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>ans<span class="token punctuation">.</span>val<span class="token punctuation">)</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

37.數字在排序數組中出現的次數

**題目:**統(tǒng)計一個數字在排序數組中出現的次數。

# -*- coding:utf-8 -*- class Solution:def GetNumberOfK(self, data, k):# write code hereans=0for i in range(0,len(data)):if data[i]==k:ans=ans+1if data[i]>k:breakreturn ans

if name==main:
data=[1,2,3,3,3,4,4,5]
k=3
solution=Solution()
ans=solution.GetNumberOfK(data,k)
print(ans)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

38.二叉樹的深度

**題目:**輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。

# -*- coding:utf-8 -*- class TreeNode:def __init__(self, x):self.val = xself.left = Noneself.right = None

class Solution:
def TreeDepth(self, pRoot):
# write code here
if pRoot is None:
return 0
left=self.TreeDepth(pRoot.left)
right=self.TreeDepth(pRoot.right)
print(left,right)
return max(left,right)+1

if name==main:

總結

以上是生活随笔為你收集整理的剑指offer-python解答的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

成人免费看片98欧美 | 国产老太婆免费交性大片 | 精品超碰 | 亚洲精品99久久久久中文字幕 | 欧美日韩亚洲在线观看 | 黄色国产在线 | 91精品少妇偷拍99 | 免费在线观看中文字幕 | 亚洲免费一级 | 欧美成人性网 | 99久久99视频 | 久久综合色播五月 | 午夜精品一区二区三区可下载 | 国产婷婷精品av在线 | 亚洲无人区小视频 | 日韩aⅴ视频 | 久久精品免费电影 | 国产剧在线观看片 | 国产视频在线免费 | 日本成人黄色片 | 久草网首页 | 成年人免费观看在线视频 | 欧美成人精品在线 | 亚洲欧美视频网站 | 在线成人观看 | 免费看国产一级片 | 国产精品日韩久久久久 | 九色视频网址 | 亚洲精品美女久久17c | 亚洲精品毛片一级91精品 | 亚洲女欲精品久久久久久久18 | 免费av影视 | 国产91精品高清一区二区三区 | 噜噜色官网 | 欧美精品久久久久久久久久久 | 久久色视频 | 天堂av免费看 | 日韩久久久久久久久 | 黄色网在线免费观看 | 91人人爽人人爽人人精88v | 可以免费看av | 中文字幕有码在线 | 精品在线看 | 中文字幕精品www乱入免费视频 | 国产一区精品在线观看 | 福利片免费看 | 国产福利91精品一区 | 日韩av偷拍 | 国产手机在线播放 | 九九色综合 | 国产午夜av | 在线成人性视频 | 国产999精品视频 | 看片一区二区三区 | 这里只有精品视频在线 | 91网在线看| 久久久精品国产免费观看同学 | 欧美激情视频一二三区 | 免费在线成人av电影 | 狠狠ri | 久久久久国产一区二区三区 | 久久免费电影网 | 国内精品久久久久久久97牛牛 | 色综合天天天天做夜夜夜夜做 | 成人动态视频 | 国产精品久久久久999 | 日日干视频 | 激情 一区二区 | 色婷婷97 | av片一区| 一级黄色电影网站 | 一级黄色在线免费观看 | 热re99久久精品国产99热 | 日韩精品一区二区三区在线播放 | 久久久久久久久久免费视频 | 在线国产高清 | 国产一区二区不卡视频 | 色综合网在线 | 九九九热精品 | 久久精品久久精品 | 中文在线中文资源 | 久草在线中文888 | 99色国产| 激情黄色一级片 | 人人干人人添 | 天天翘av| 国产精品美女久久久免费 | 欧美十八| 久久天堂影院 | 91久久国产露脸精品国产闺蜜 | 人人澡人人草 | 日韩有码第一页 | 欧美日韩p片| 亚洲精品在线网站 | 丁香在线| 在线看岛国av| 日韩在线欧美在线 | 日韩精品免费一区二区 | 最近中文字幕mv免费高清在线 | 国产一区视频免费在线观看 | 蜜臀久久99精品久久久无需会员 | 久久视频国产精品免费视频在线 | 国内精品久久久久影院男同志 | 精品国产乱码久久久久久1区二区 | 五月视频 | 国产一区在线免费观看视频 | 波多野结衣最新 | 狠狠操夜夜 | 成人小视频在线观看免费 | 青草视频在线 | 一二三区av | 天天操天天拍 | 国产一区二区三区久久久 | 色操插 | 天天操夜夜操天天射 | 黄色一级动作片 | 中文一区在线观看 | 久久久国产精品网站 | 五月天综合在线 | 国产高清av在线播放 | 激情文学综合丁香 | 国产精品视频免费观看 | 中文字幕中文字幕在线一区 | 成人免费毛片aaaaaa片 | 久久久国产精品电影 | 狠狠色伊人亚洲综合成人 | 免费大片黄在线 | 欧美美女视频在线观看 | 香蕉影视在线观看 | 在线久久 | 亚洲精品成人在线 | 91精品国产网站 | 天天草综合网 | 日日夜夜骑 | 色婷婷丁香 | 久久国产美女视频 | 久久tv| 九九亚洲视频 | 少妇资源站 | 综合色狠狠 | 久久精品国亚洲 | 人人超碰在线 | 一区二区av | 国产精品嫩草影院99网站 | 国产成人精品一区二区三区在线 | 欧美日韩精品在线观看视频 | 国产精品欧美久久久久天天影视 | 三级免费黄 | 狂野欧美激情性xxxx | av7777777 | 精品国产免费观看 | 99久久精品国产亚洲 | 在线视频 91 | 国产成人三级一区二区在线观看一 | 成人中文字幕+乱码+中文字幕 | 射九九 | 成人xxxx| 福利一区在线 | 国产视频999 | 91精品国产自产在线观看永久 | 激情小说网站亚洲综合网 | 国产h在线播放 | 欧美日韩国产在线观看 | 亚洲最大成人免费网站 | 久久精品久久久久久久 | 亚洲自拍av在线 | 91高清完整版在线观看 | 蜜臀av.com| 国产香蕉视频 | 亚洲婷婷伊人 | 国产精品久久99 | 69精品人人人人 | 超碰97人人干 | 亚洲精品美女久久久 | 最近免费中文字幕 | 欧美精品久久久久性色 | 亚洲精品网站在线 | 久久99中文字幕 | 337p日本大胆噜噜噜噜 | 亚洲视频www | 色婷婷亚洲精品 | 五月婷婷欧美 | 国产99爱| 尤物97国产精品久久精品国产 | 在线视频第一页 | 91视频首页 | 欧美巨乳网 | 在线视频婷婷 | 免费在线国产精品 | 亚洲天堂网在线视频 | 久青草视频在线观看 | 久久国产精品一区二区三区 | 成人午夜电影网 | 99国产精品久久久久久久久久 | 国产一级二级在线观看 | 成人黄在线观看 | 西西www4444大胆在线 | 黄色av电影在线 | 亚洲成人欧美 | 女人18毛片90分钟 | 日本一区二区三区免费观看 | 国产99久久久国产精品免费看 | 色网免费观看 | 国产精品久久精品国产 | 亚洲爱爱视频 | 在线亚洲高清视频 | 免费成人在线电影 | 日韩欧美高清免费 | 欧洲一区二区在线观看 | 久久国产精品第一页 | 丝袜美女在线观看 | 中国美女一级看片 | 久久精品视频国产 | 手机在线日韩视频 | 一区二区精品在线 | 美女久久久久久久久久 | 婷婷丁香色 | www.色com | 国产精品欧美久久 | 久久久久中文 | 久久第四色 | 在线国产91 | 亚洲精品视频在线观看免费视频 | 日韩理论 | 91人人揉日日捏人人看 | 天天操天天干天天操天天干 | 国产午夜三级一区二区三 | 婷婷丁香久久五月婷婷 | 尤物九九久久国产精品的分类 | 四虎免费在线观看视频 | 亚洲国产精品激情在线观看 | 国产码电影 | 国产成人三级三级三级97 | 日韩精品视频在线免费观看 | 久艹在线观看视频 | 很黄很污的视频网站 | 久久免费视频5 | a午夜在线| a久久免费视频 | 久久久久久久久久久成人 | 天天操夜夜拍 | 四虎在线免费观看 | 亚洲精品99久久久久中文字幕 | 九九免费在线观看 | 成片免费 | 亚洲黄色三级 | 日韩一二区在线观看 | 日韩在线观看第一页 | 日日日爽爽爽 | 色香天天 | 国产精品久久久久久久久久ktv | 国产精品999久久久 久产久精国产品 | 一区二区激情视频 | 午夜少妇av | 国产区网址 | 日韩激情在线 | 天天插日日插 | a天堂最新版中文在线地址 久久99久久精品国产 | 成年在线观看 | 日本二区三区在线 | 伊在线视频| 午夜精品一区二区三区在线视频 | 婷婷激情av | 一区二区日韩av | 国精产品999国精产品视频 | 国产精品久久久久久久电影 | 成人av动漫在线 | 尤物97国产精品久久精品国产 | 国产又黄又猛又粗 | 黄色一级免费 | 亚洲精品自在在线观看 | 99精品免费网 | 国产在线观看99 | 激情图片区 | 国产破处视频在线播放 | 99热九九这里只有精品10 | 午夜18视频在线观看 | av电影中文字幕在线观看 | 日韩美女免费线视频 | 香蕉视频网站在线观看 | 视频国产区 | 国产视频高清 | 最近免费中文字幕mv在线视频3 | 中文字幕av播放 | 日韩在线观看精品 | 中文字幕在线第一页 | 成人精品国产免费网站 | 操操日日 | www.五月天婷婷 | 精选久久 | 欧美激情视频在线观看免费 | .国产精品成人自产拍在线观看6 | 五月婷婷激情六月 | 黄色大全视频 | 欧美最爽乱淫视频播放 | 色妞久久福利网 | 有码中文字幕 | 国产精品视频在线观看 | 特及黄色片 | 久久久精品国产一区二区 | 日韩在线观看中文字幕 | 国产精品18久久久久白浆 | 九九免费在线观看视频 | 国产午夜精品av一区二区 | 久久久视频在线 | 日韩视频一区二区三区在线播放免费观看 | 国产欧美最新羞羞视频在线观看 | 波多野结衣动态图 | 亚洲黄色免费在线看 | av888.com| 成人高清av在线 | 国产免费成人 | 日韩精品中文字幕久久臀 | 亚洲另类久久 | 亚洲国产精品女人久久久 | 黄色免费看片网站 | 99久久婷婷国产综合精品 | 亚洲最大激情中文字幕 | www.人人草 | 国产一级在线 | 色综合久久精品 | 欧美日韩中 | 狠狠色综合欧美激情 | 91精品区 | 天天天操天天天干 | 一区二区三区四区久久 | 天天拍天天爽 | 91麻豆精品91久久久久同性 | 国产99久久精品一区二区永久免费 | 香蕉视频久久 | 最近2019年日本中文免费字幕 | 中文字幕在线视频国产 | 国产精品久久久久久久免费大片 | 在线亚洲免费视频 | 精品99在线视频 | www.干| 亚洲精品国产精品国 | 人人澡超碰碰97碰碰碰软件 | 精品国产免费久久 | 在线观看视频91 | 97电影院在线观看 | 精品一区二区在线播放 | 成人91免费视频 | 久久99国产精品自在自在app | 国产丝袜高跟 | 日韩免费在线视频观看 | 久操视频在线免费看 | 青青久草在线视频 | 久草在线观看 | 亚洲视频一区二区三区在线观看 | 久久国产综合视频 | 久久婷婷视频 | 亚洲精品五月天 | 国产资源站| av资源免费看 | 午夜久久 | 免费午夜av | 免费观看www视频 | 永久免费精品视频网站 | 99色网站| 国产精品9999 | av大全在线免费观看 | 美女黄频在线观看 | 国产成人免费精品 | 国产又黄又爽又猛视频日本 | 久久www免费视频 | 97人人视频| 国内精品久久久久久久久 | 亚洲视频免费 | 在线免费日韩 | 操少妇视频 | 国产成人av网 | 亚洲欧美激情插 | 国产尤物视频在线 | 玖玖玖在线观看 | 午夜久久福利视频 | 久久天天操 | 国内视频在线 | 99色资源 | 91看片淫黄大片91 | 日韩美女av在线 | 日韩视频一 | 在线观看视频一区二区三区 | 天天天干夜夜夜操 | 三级黄色免费 | 手机在线欧美 | 麻豆影视在线播放 | 日韩免费b | 日韩系列在线观看 | 日本中文乱码卡一卡二新区 | 久久高清视频免费 | 成片免费观看视频大全 | 国产精品videoxxxx | 国产精品成人一区 | 97精品国产97久久久久久春色 | 麻豆91精品| 人人干人人草 | 国产精品嫩草影院123 | 精品国产一区二区在线 | 五月综合网站 | 亚洲精品高清视频 | 超碰电影在线观看 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 99久久久久久久久久 | 美女网站色免费 | 亚洲丝袜一区 | aaa毛片视频| 不卡av在线免费观看 | ,午夜性刺激免费看视频 | 久久999久久 | 日韩欧美aaa | 国产精品青青 | 99精品国产一区二区三区麻豆 | 2020天天干夜夜爽 | 99在线免费观看视频 | 热99在线视频 | 新版资源中文在线观看 | 久久久久久久久精 | 久久亚洲免费视频 | 久久精品国产亚洲精品2020 | 九九九九精品 | 欧美久久久久久久久久 | 久草久热 | 国产视频一区二区在线观看 | 日日操夜夜操狠狠操 | 国产成人一区二区啪在线观看 | 国产在线欧美在线 | 久久综合久久伊人 | 在线中文字幕av观看 | 欧美一区二区伦理片 | 96久久欧美麻豆网站 | 欧美日韩精品电影 | 91视频在线免费下载 | 色视频在线观看 | 国产精品免费久久久久久 | 中文字幕在| 香蕉在线播放 | 欧美成人h版电影 | 一区精品久久 | 国产成人精品一区二区三区免费 | 国产不卡在线 | 国产福利一区二区三区视频 | 日本成人中文字幕在线观看 | 99视频精品在线 | 日本黄色免费电影网站 | 天天干天天操天天爱 | 欧美激情精品久久久久久免费 | www久久国产 | 在线免费看黄网站 | 久草视频在线看 | av成人免费在线观看 | 久草在线这里只有精品 | 国产精品久久久网站 | 亚洲精品国偷自产在线99热 | 久久毛片视频 | 日韩网站在线播放 | 免费看国产曰批40分钟 | 国产成人精品一区二区三区网站观看 | 99热日本| 天堂av在线网 | 97精产国品一二三产区在线 | 美女福利视频网 | 夜夜躁天天躁很躁波 | 精品在线二区 | 青青啪 | 国产精品私人影院 | 91超在线 | 欧美一区二区精美视频 | 欧美射射射| 亚洲欧美日韩中文在线 | 欧美日韩精品综合 | 99精品99| 九九视频在线播放 | 久久久午夜精品理论片中文字幕 | 啪啪av在线| 欧美贵妇性狂欢 | 亚洲精品理论片 | 欧美另类老妇 | 蜜臀av网站| 久久免费视频精品 | 97av在线视频 | 午夜精品久久久久久 | bbbbb女女女女女bbbbb国产 | 亚洲视频播放 | 亚洲成人精品国产 | 国产精品久久免费看 | 91av视频观看 | 人人爽人人 | 久久精品一区二区三区四区 | 9999精品| 久久精品中文字幕一区二区三区 | 51精品国自产在线 | 欧美狠狠色 | 女人18精品一区二区三区 | 国产精品mv在线观看 | 欧美国产亚洲精品久久久8v | 亚洲国产高清在线观看视频 | 国产福利专区 | 国产精品女主播一区二区三区 | 天天操网| 九九九九色 | 国产一区视频在线播放 | 日韩精品一区二区三区在线播放 | 久久有精品 | 91亚洲欧美激情 | 久久久久久国产精品 | 国产一区二区三精品久久久无广告 | av免费电影在线观看 | 天天干 夜夜操 | 久久精品这里都是精品 | 免费三级网 | 日韩高清av在线 | 奇米影视777影音先锋 | 国产日本高清 | 国产操在线| 91免费视频网站在线观看 | 91av视频免费观看 | 久久精品在线 | 免费视频久久久久 | 久久国产女人 | 久久天天操 | 久久久久久久毛片 | 伊人电影在线观看 | 99这里都是精品 | 91成人黄色 | 久久久久久网站 | 国产99久久久国产精品成人免费 | 成年人三级网站 | 亚洲a在线观看 | 天天干天天做 | 午夜一级免费电影 | 亚洲精品免费在线观看 | 国产精品成人自产拍在线观看 | 超碰人人在线观看 | 亚洲成av人影院 | 成人三级网址 | www.久久久com | 精品伊人久久久 | 日韩免费在线看 | 免费在线观看黄网站 | 狠狠干成人综合网 | 日韩在线视频看看 | 亚洲国产精品va在线 | 日韩欧美中文 | 亚洲精品99久久久久中文字幕 | 日韩电影中文字幕在线 | 国产精品成人一区二区三区吃奶 | www蜜桃视频 | 丁香在线观看完整电影视频 | 伊人天天操 | av大全在线播放 | 欧美国产日韩中文 | av高清免费| 亚洲人毛片 | 国产99久久久国产 | 精品免费在线视频 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 亚洲婷婷网 | 国产欧美日韩一区 | 日日夜夜狠狠干 | 伊人五月在线 | 天天艹天天干天天 | 国产精品日韩欧美 | 一二区精品 | 中文字幕资源在线观看 | 亚洲性xxxx | 色大片免费看 | 亚洲欧美视频在线观看 | 日b视频在线观看网址 | 特级毛片网 | 黄色aaaaa | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 久草在线视频首页 | 日本中文字幕观看 | 久久精品欧美日韩精品 | 在线日本v二区不卡 | 麻豆视频在线免费 | 久久国产精品99久久久久久丝袜 | 中文字幕xxxx | 久草视频在 | 日韩视频免费观看高清完整版在线 | 中文字幕在线观看的网站 | 久久97久久97精品免视看 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 91一区二区三区在线观看 | 中文字幕激情 | 一级久久精品 | 国产精品九九九九九 | 91少妇精拍在线播放 | 日日干夜夜操视频 | 欧美精品久久久久久久久老牛影院 | 91av在线免费 | 一区二区三区污 | 狠狠色丁香九九婷婷综合五月 | 亚洲精品视频网 | av黄在线播放 | 一区三区在线欧 | 国产中文欧美日韩在线 | 美女久久| 久久久精品欧美 | www日| 亚洲国产精品久久久久 | 亚洲精品在线观看视频 | avcom在线 | www.夜夜草 | 久久精彩| 午夜少妇av | 在线观看麻豆av | 男女精品久久 | www.人人草| 中文国产在线观看 | 精品一二三区 | 久久男人视频 | 日韩欧美视频在线观看免费 | 日韩av偷拍| 欧美精品一区二区三区四区在线 | 欧美激情精品久久久久久 | 久久96国产精品久久99软件 | 99在线精品视频在线观看 | 欧美日韩一区二区在线观看 | 日日弄天天弄美女bbbb | 国产精美视频 | 97色噜噜 | 久久视频国产精品免费视频在线 | 久久婷亚洲五月一区天天躁 | 九九热在线视频免费观看 | 99精品一区二区三区 | 日韩久久一区二区 | 天天操天天干天天摸 | 亚洲欧洲日韩在线观看 | 在线影视 一区 二区 三区 | 日韩精品一区二区三区第95 | 色99之美女主播在线视频 | 亚洲免费色 | 综合久久久 | 综合网av | 成人国产精品av | 欧美日韩精品二区第二页 | 久草在线观 | 激情五月婷婷激情 | 粉嫩av一区二区三区四区 | 久久久久免费精品 | 久久免费观看少妇a级毛片 久久久久成人免费 | 免费午夜视频在线观看 | 99久久99热这里只有精品 | 免费在线黄色av | 九九在线视频免费观看 | 成人av教育 | 在线国产精品一区 | 久久精品毛片 | 久久综合九色综合欧美就去吻 | 在线观看亚洲免费视频 | 午夜天使 | 国产精品一区二区麻豆 | 国产成人精品久久二区二区 | 丁香激情综合久久伊人久久 | 黄色aa久久 | 欧美日韩精品二区第二页 | 一区二区三区在线观看 | 欧美色黄 | 久久视频6| 麻豆国产网站 | 美女免费黄视频网站 | 99热99| 色播六月天 | 天天干天天操天天做 | 在线 你懂| 日韩精品一区二区三区电影 | 一区二区三区免费看 | 热99久久精品 | 国产一区免费 | 国产精品一区二区久久久久 | av一级片 | 99精品在线视频观看 | 欧美视频国产视频 | 国产999精品久久久久久 | 在线观看视频你懂得 | 亚洲视频综合 | 91在线播放综合 | 99精品视频免费全部在线 | 亚洲日本va在线观看 | 国产中文字幕在线看 | 日韩高清三区 | 色综合小说 | 视频在线观看亚洲 | 久久精品国产亚洲精品2020 | 中文字幕一二 | 97在线观看视频 | 丁香婷五月 | 玖玖玖在线| 热久久视久久精品18亚洲精品 | 亚洲最大在线视频 | 国产免费黄视频在线观看 | 成人黄色小说网 | 国产精品theporn | 亚洲精品456在线播放第一页 | 日韩精品1区2区 | 国产日韩欧美在线一区 | 成人av观看 | 亚洲三级黄色 | 国产人成一区二区三区影院 | 日韩黄色在线观看 | 久久免费a | 久久精品人 | av在线影片 | 国产亚洲综合精品 | 中文字幕亚洲在线观看 | 成年人在线观看 | 九九在线国产视频 | 精品久久网 | 日日操天天爽 | 激情婷婷网 | 欧美日韩高清一区二区 国产亚洲免费看 | 91亚洲欧美 | 又黄又爽又色无遮挡免费 | 激情五月色播五月 | 一级做a爱片性色毛片www | 91视频a| 国产精品成人av在线 | av在线直接看 | 欧美另类xxx| 亚洲 欧洲 国产 日本 综合 | 日韩欧美视频 | 丁香色天天 | 免费三级网| 国产精品美女999 | 日本性生活一级片 | 久久综合久久久 | 久久综合国产伦精品免费 | 性色av一区二区三区在线观看 | 国产精品一区二区免费在线观看 | av一级久久 | 高清中文字幕 | 久久久久福利视频 | www黄色av| www.777奇米| 五月激情姐姐 | 草久久久久久久 | 久久久久久久久久久精 | 久久中文字幕在线视频 | 午夜手机看片 | 在线高清一区 | 91九色视频国产 | 国产精品电影一区 | www最近高清中文国语在线观看 | 欧美日韩午夜在线 | 91丨九色丨蝌蚪丰满 | 69亚洲乱| 欧美另类重口 | 麻豆视频网址 | 成人在线观看影院 | 亚洲精品网站 | 91香蕉嫩草 | 999久久国精品免费观看网站 | 韩日精品中文字幕 | 91丨九色丨国产在线观看 | 日韩午夜电影院 | 91香蕉视频在线下载 | 久久特级毛片 | 亚洲一区二区天堂 | 国产日韩在线视频 | 亚洲人久久久 | 国产精品黄网站在线观看 | 午夜999| 51精品国自产在线 | 黄色亚洲免费 | 蜜臀av免费一区二区三区 | 欧美另类交在线观看 | 欧美另类美少妇69xxxx | 超碰在线成人 | 久草在线视频网站 | 久久精品国产精品亚洲 | 五月综合色婷婷 | 国产欧美久久久精品影院 | 亚洲 欧美变态 另类 综合 | 91麻豆精品国产91久久久使用方法 | 五月婷婷.com | 五月激情综合婷婷 | 国产一级免费观看 | 久久a视频| 黄a在线观看| 天天色欧美 | 亚洲资源在线网 | 久久久国产一区二区 | 美女网站在线播放 | 九九久久婷婷 | 久久综合九色综合久久久精品综合 | a级国产乱理论片在线观看 特级毛片在线观看 | 成人a在线| 国产精品99久久久久久小说 | 欧美永久视频 | 91一区啪爱嗯打偷拍欧美 | 久久艹中文字幕 | 天天色欧美 | 成年人在线播放视频 | 国产香蕉久久精品综合网 | 天天色天天爱天天射综合 | 久久露脸国产精品 | 免费开视频 | 97成人啪啪网 | 999视频在线播放 | 97人人澡人人添人人爽超碰 | 狠狠干综合| 欧美成年网站 | 麻豆久久久 | 久久老司机精品视频 | 久久av中文字幕片 | www日 | 久久人人爽人人人人片 | 久草在线综合网 | 久草在线国产 | 91视频3p| 国产丝袜网站 | 91色吧 | 久久999久久 | 97超碰人人 | 久久av免费观看 | 干亚洲少妇 | 欧美另类一二三四区 | 欧美99热 | 久久电影国产免费久久电影 | 久久国产二区 | 日韩不卡高清视频 | 天天综合网天天综合色 | 国产精品一区二区吃奶在线观看 | 精品国产_亚洲人成在线 | 亚洲精品视频在线观看免费视频 | 国产亚洲婷婷免费 | 九九久久久久久久久激情 | 亚洲精品视频在线免费 | 91av视频在线免费观看 | 亚洲综合欧美日韩狠狠色 | 久久视频免费在线 | 日韩精品资源 | 日韩在线观看你懂的 | 2021国产精品 | 日韩成人免费在线电影 | 日韩精品中文字幕在线播放 | 中文字幕av最新更新 | 国产伦理剧 | 久久尤物电影视频在线观看 | 日韩最新av在线 | 国内久久视频 | 一区二区三区免费看 | 亚洲麻豆精品 | 91在线看片 | 色多视频在线观看 | 狠狠操电影网 | 色视频在线免费 | 国产高清综合 | 免费黄色在线播放 | 狠狠色丁香婷婷综合久久片 | 天天草视频 | 欧美日韩精品在线一区二区 | 欧美色一色 | 黄色av免费看 | 国产精品久久久久aaaa | 特级片免费看 | 在线影院av | a级片在线播放 | 国产生活一级片 | 欧美精品久久久久 | 在线看黄色av | 国产不卡精品视频 | 免费日韩视 | 国产一二三区在线观看 | 日韩av一卡二卡三卡 | 日日久视频 | 激情五月看片 | 日韩在线免费视频观看 | 久久久精品免费观看 | 久久久国产网站 | 成人丝袜 | 国产一级免费观看视频 | 午夜色场| 亚洲影院色 | 婷婷色5月| 国产精品免费麻豆入口 | 国产一区二区不卡视频 | 在线免费看黄网站 | 欧美日韩中文在线观看 | 欧美性春潮 | 日韩va在线观看 | 亚洲精品国产欧美在线观看 | 91成年人在线观看 | 伊人午夜视频 | 免费成人在线观看视频 | 香蕉视频国产在线 | 伊人婷婷网 | 久久久久免费观看 | 国产福利精品在线观看 | 天天操天天操天天操天天操天天操天天操 | 特级黄录像视频 | 成人黄大片 | 国产精品激情偷乱一区二区∴ | 成人午夜电影久久影院 | 日韩欧美久久 | 美女网站在线观看 | av在线短片 | 99久久久国产精品免费99 | 日日操日日插 | 天天色天天操天天爽 | 国产精品黄网站在线观看 | 欧美日韩伦理一区 | 国产精品99爱| 国际精品久久久久 | 免费黄色激情视频 | 久久久高清视频 | 日韩色在线 | 91福利在线导航 | 91精品国产自产在线观看永久 | 五月亚洲婷婷 | 日韩中文字幕免费电影 | 国产午夜精品视频 | 在线观看免费福利 | 久久精品超碰 | 五月婷婷电影网 | 在线观看视频97 | 97视频在线看 | 国产亚洲永久域名 | 久青草国产在线 | av品善网| 亚洲干视频在线观看 | 亚洲欧洲在线视频 | 国产亚洲欧美日韩高清 | 激情久久久久 | 中文av日韩 | 啪啪av在线 | 中文字幕中文中文字幕 | 亚洲三级网站 | 97电影院在线观看 | 亚在线播放中文视频 | 日韩欧美高清一区二区 | 人成在线免费视频 | 色婷婷综合久久久 | 国产手机视频在线播放 | 色夜影院| a级国产乱理论片在线观看 伊人宗合网 | 美女黄频视频大全 | 日韩a在线播放 | 欧美在线观看小视频 | 国产成人在线综合 | 日韩精品免费专区 | 久久久久成人精品免费播放动漫 | 91精品网站在线观看 | 在线观看国产www | 人人盈棋牌 | 中文字幕国语官网在线视频 | 久久999精品 | 国产原创在线 | 一区二区av | 狠狠色噜噜狠狠狠 | 色多视频在线观看 | 亚洲最大激情中文字幕 | 日韩三级视频在线看 | 中文av免费 | 视色网站 | 亚洲成av人影院 | 一级精品视频在线观看宜春院 | 欧美资源 | 国产免费叼嘿网站免费 | 国产一卡久久电影永久 | 99久视频| 成人黄色片免费看 | 国产成人精品免高潮在线观看 | 亚洲精品日韩在线观看 | 成人在线视频在线观看 | 久草线 | 国产91全国探花系列在线播放 | 国产99精品在线观看 | 视频1区2区 | 一区二区视频免费在线观看 | 久久黄色片子 | 国产精品一区二区三区在线 | 国产小视频精品 | 日韩理论在线观看 | 色综合人人 | 久草观看 | 欧美午夜理伦三级在线观看 | 国产黄网在线 | 亚洲欧美视频在线播放 | 国产一级片网站 | 免费观看视频黄 | 中文字幕一区二区三区久久 | 中文在线字幕观看电影 | 久久精品一区 | 久草在线中文视频 | 免费精品国产va自在自线 | 国产成人免费av电影 | 精品视频资源站 | 久久久久久久久免费 | 黄色av电影一级片 | 91精品国产欧美一区二区成人 | 成年人黄色av | 亚州日韩中文字幕 | 久久99精品国产99久久 | 亚州精品在线视频 | 中文有码在线 |