牛客网《剣指offer》之Python 2.7実装:チェーンテーブルの最後からk番目のノード
4627 ワード
タイトルの説明
チェーンテーブルを入力し、チェーンテーブルの最後からk番目のノードを出力します.
構想
k個のノードの速い、遅いポインタを使うといいです.この問題の面倒なところは境界条件にあります.他の異常な状況の考えは(これらの不思議なテスト例をどうやって知っているのか聞かないでください.彼らは私に人間として教えてくれたからです.):6,{1,2,3,4,5}0,{1,2,3,4,5}5,{}
彼らが何を出力すべきか考えてみましょう.の
コード#コード#
ハイプレイのコード
牛客網から来て、簡単で乱暴で、簡潔で、Pythonのリストの柔軟な特性を利用しました
チェーンテーブルを入力し、チェーンテーブルの最後からk番目のノードを出力します.
構想
k個のノードの速い、遅いポインタを使うといいです.この問題の面倒なところは境界条件にあります.他の異常な状況の考えは(これらの不思議なテスト例をどうやって知っているのか聞かないでください.彼らは私に人間として教えてくれたからです.):6,{1,2,3,4,5}0,{1,2,3,4,5}5,{}
彼らが何を出力すべきか考えてみましょう.の
コード#コード#
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def FindKthToTail(self, head, k):
# write code here
if k == 0 or head == None:
return None
fast = head
slow = head
while fast != None:
if k > 0:
k = k - 1
else:
slow = slow.next
fast = fast.next
return None if k > 0 else slow
ハイプレイのコード
牛客網から来て、簡単で乱暴で、簡潔で、Pythonのリストの柔軟な特性を利用しました
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def FindKthToTail(self, head, k):
# write code here
res=[]
while head:
res.append(head)
head=head.next
if k>len(res) or k<1:
return
return res[-k]