@@ -5,28 +5,24 @@ class Node:
5
5
def __init__ (self , data : Any ) -> None :
6
6
self .data = data
7
7
self .next_node = None
8
-
8
+
9
9
def __iter__ (self ):
10
10
node = self
11
11
while node :
12
12
yield node .data
13
13
node = node .next_node
14
-
15
- def has_loop (self ) -> bool :
14
+
15
+ @property
16
+ def has_duplicate_data (self ) -> bool :
16
17
> >> node1 = Node (1 )
17
18
> >> node1 .next_node = Node (2 )
18
19
> >> node1 .next_node .next_node = Node (3<
FF32
/span>)
19
20
> >> node1 .next_node .next_node .next_node = Node (4 )
21
+ > >> node .has_duplicate_data
22
+ False
20
23
> >> node1 .next_node .next_node .next_node = node1 .next_node
21
- > >> has_loop ( node1 )
24
+ > >> node . has_duplicate_data
22
25
True
23
-
24
- > >> node2 = Node (1 )
25
- > >> node2 .next_node = Node (2 )
26
- > >> node2 .next_node .next_node = Node (1 )
27
- > >> node2 .next_node .next_node .next_node = Node (2 )
28
- > >> contains_loop (node2 )
29
- False
30
26
"""
31
27
return len(list(self)) != len(set(self))
32
28
@@ -37,15 +33,13 @@ def has_loop(self) -> bool:
37
33
node1 .next_node .next_node = Node (3 )
38
34
node1 .next_node .next_node .next_node = Node (4 )
39
35
node1 .next_node .next_node .next_node = node1 .next_node
40
- print (has_loop ( node1 ) )
36
+ print (node1 . has_duplicate_data )
41
37
42
38
node2 = Node (5 )
43
39
node2 .next_node = Node (6 )
44
40
node2 .next_node .next_node = Node (5 )
45
41
node2 .next_node .next_node .next_node = Node (6 )
46
- print (has_loop ( node2 ) )
42
+ print (node2 . has_duplicate_data )
47
43
48
44
node3 = Node (1 )
49
- # node3.next_node = Node(2)
50
- # node3.next_node.next_node = node3
51
- print (has_loop (node3 ))
45
+ print (node3 .has_duplicate_data )
0 commit comments