数据结构:单向循环链表(二)

单向循环链表的操作

length()返回链表的长度

思路:当头节点为空的时候,直接返回0

   其它情况下,先确定循环条件,之前单链表的cur != None这一条件不适用于此,因为最后一个节点会指向头节点,即此时是cur.next==self.__head

   而cur==self.__head同样不可取,第一个节点就满足,循环马上退出

   count计算应该从1开始,因为如果一开始count=0的话,此时cur指向第一个节点,之前是因为cur会指向None,count能够正常计数,这时候应该从1开始计,而0的情况(就链表为空),先提前判断

class SinCycLinkedlist(object):
    def __init__(self,node=None):
        self.__head=node
        if node:
            node.next=self.__head

    def length(self):
        cur=self.__head
        if self.__head==None:
            return 0
        count=1
        while cur.next != self.__head:
            count=+1
            cur=cur.next
        return count

  

 

posted @ 2020-05-14 09:49  Roronoa-Zoro  阅读(124)  评论(0编辑  收藏  举报