劍指offer 面試22題

2022-04-23 00:51:10 字數 829 閱讀 3705

面試22題:

題目:鍊錶中倒數第k個節點

題:輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。

解題思路:為了實現只遍歷鍊錶一次就能找到倒數第k個節點,我們可以定義兩個指標。讓第乙個指標先向前走k-1步,第二個指標保持不動;從第k步開始,第二個指標也開始從鍊錶的頭指標開始遍歷。由於兩個指標的距離保持在k-1,當第乙個指標到達鍊錶的尾節點時,第二個指標剛好到達倒數第k個節點。

解題**:

#

-*- coding:utf-8 -*-

#class listnode:

#def __init__(self, x):

#self.val = x

#self.next = none

class

solution:

deffindkthtotail(self, head, k):

#write code here

ifnot head or k<=0:

return

none

pahead=head

pbehind=none

for i in range(k-1):

ifpahead.next:

pahead=pahead.next

else

:

return

none

pbehind=head

while

pahead.next:

pahead=pahead.next

pbehind=pbehind.next

return pbehind

劍指offer 面試35題

面試35題 題目 複雜鍊錶的複製 題 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 解題思路一 python作弊法 解題 coding ...

劍指offer 面試33題

面試33題 題 二叉搜尋樹的後序遍歷序列 題目 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。解題思路 遞迴 解題 coding utf 8 class solution defverifysquenceof...

劍指offer 面試31題

面試31題 題目 棧的壓入 彈出元素 題 輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出...