美文网首页
1.5 如何找出单链表中倒数第k个元素

1.5 如何找出单链表中倒数第k个元素

作者: 就是果味熊 | 来源:发表于2020-02-25 20:29 被阅读0次

题目

找出单链表中倒数第k个元素,例如给定1>2>3>4>5>6>7,则单链表中的倒数第k=3个元素为5.

#%%
class LHead:
    def __init__(self):
        self.next = None
    
    def get_ordered_list(self): # 以列表形式打印顺序表
        order_list = []
        if self.next == None or self == None:
            return order_list
        else:
            cur = self.next
            while cur != None:
                order_list.append(cur.data)
                cur = cur.next
            return order_list
        
    def ordered_list_size(self): #获得链表长度
        
        return len(self.get_ordered_list())
    
    def create_ordered_list(self,size): #在新建头结点后面生成有序链表
        i = 0
        tmp = None
        cur = self
        ordered_list = []
         #构造单链表
        while i < size:
             tmp = LNode(i)
             tmp.next = None
             cur.next = tmp
             cur = tmp
             i += 1
        cur = self.next
        while cur != None:
            ordered_list.append(cur.data)
            cur = cur.next
        return ordered_list,self
    
#%%
class LNode:
    def __init__(self,data):
        self.data = data
        self.next = None
        

#%%
def find_kth_element(head,k):
    if head == None or head.next == None:
        return None
    else:
        slow = head.next
        fast = head.next
        for i in range(k): # 可以用while同时判断i < k和 fast!= None
            if fast != None:
                fast = fast.next
            else:
                if i == k :
                    return slow.data
                else:
                    return None
        while fast!= None:
            fast = fast.next
            slow = slow.next
        return slow.data

相关文章

  • 1.5 如何找出单链表中倒数第k个元素

    题目 找出单链表中倒数第k个元素,例如给定1>2>3>4>5>6>7,则单链表中的倒数第k=3个元素为5.

  • [链表] 查找单链表中的倒数第k个元素

    1、为了找出倒数第k个元素,最容易想到的办法是首先遍历一遍单链表,求出整个单链表的长度n,然后将倒数第k个,转换为...

  • 单链表

    单链表 单链表问题与思路 找出单链表的倒数第K个元素(仅允许遍历一遍链表)使用指针追赶的方法。定义两个指针fast...

  • 面试常考的链表操作

    1、链表的结构 2、链表的逆序 3、找出倒数第k个 4、找出中间元素 5、判断链表是否有环

  • 找出单链表中的倒数第k个元素

    题目 给定一个单链表找到倒数第k个元素 ,无环 解 题目中的关键点 单链表 (没有长度)如果知道单链表的长度len...

  • 面试算法2

    存在一个单链表,寻找这个单链表倒数第K的元素。比如{1->2->3->4->5},倒数第2个元素为4。 分析一最容...

  • JZ-014-链表中倒数第 K 个结点

    链表中倒数第 K 个结点 题目描述 输入一个链表,输出该链表中倒数第k个结点。题目链接: 链表中倒数第 K 个结点...

  • 在单链表中查找倒数第k个结点

    在单链表中如何获得倒数第K个结点,最直接的方式,设置一个计数器,遍历完整个链表,获得链表的长度,然后计算获得倒数第...

  • 链表中倒数第k个节点

    《剑指offer》面试题22:代码中倒数第k个节点 题目:输入一个单链表,输出该链表中倒数第k个结点。 思路:定义...

  • 2.单链表

    该部分包含以下内容-单链表的增删改查-计算链表长度-逆序链表-寻找(删除)链表倒数第K个元素-逆序打印链表(使用栈)

网友评论

      本文标题:1.5 如何找出单链表中倒数第k个元素

      本文链接:https://www.haomeiwen.com/subject/lxomqhtx.html