Leetcode Day8 2
今天都是簡單題,給了我離譜的自信……
劍指 Offer 22. 鏈表中倒數(shù)第k個節(jié)點
輸入一個鏈表,輸出該鏈表中倒數(shù)第k個節(jié)點。為了符合大多數(shù)人的習(xí)慣,本題從1開始計數(shù),即鏈表的尾節(jié)點是倒數(shù)第1個節(jié)點。
例如,一個鏈表有 6 個節(jié)點,從頭節(jié)點開始,它們的值依次是 1、2、3、4、5、6。這個鏈表的倒數(shù)第 3 個節(jié)點是值為 4 的節(jié)點。
先不看大佬的 題解,暴力解一解,過了先~
#?Definition?for?singly-linked?list.
#?class?ListNode:
#?????def?__init__(self,?x):
#?????????self.val?=?x
#?????????self.next?=?None
class?Solution:
????def?getKthFromEnd(self,?head:?ListNode,?k:?int)?->?ListNode:
????????tmp=head.next
????????def?getlen(head:?ListNode):
????????????t=head
????????????len=1
????????????while?t.next:
????????????????t=t.next
????????????????len+=1
????????????return?len
????????total=getlen(head)
????????while?(total-k):
????????????head=tmp
????????????tmp=tmp.next
????????????total-=1
????????return?head

來看看大佬們怎么解決的??
用的雙指針,p,q一起放head節(jié)點,然后p比q先走k步,這樣p到末尾null節(jié)點的時候q正好在倒數(shù)第k個節(jié)點。
嗚嗚嗚大佬們太聰明了~

就是感覺沒快多少,不過python本來就慢.jpg
