# Check if linked list is sorted (Iterative and Recursive) in Python

Suppose we have a linked list we have to define two functions to check whether the linked list is sorted in non-increasing order or not. One of the method will work as iterative manner and another one in recursive manner.

So, if the input is like L = [15, 13, 8, 6, 4, 2], then the output will be True.

To solve this, we will follow these steps −

• Define a function solve_iter(). This will take head
• if head is null, then
• return True
• while next of head is not null, do
• if value of current <= value of (next of current), then
• return False
• return True
• Define a function solve_rec() . This will take head
• if head is null or next of head is null, then
• return True
• return true when (val of head > value of (next of head) is not 0 and solve_rec(next of head) is true) otherwise false

## Example

Let us see the following implementation to get better understanding −

Live Demo

class ListNode:
def __init__(self, data, next = None):
self.val = data
self.next = next
def make_list(elements):
for element in elements[1:]:
while ptr.next:
ptr = ptr.next
ptr.next = ListNode(element)
return True
if current.val <= current.next.val:
return False
return True
return True
L = make_list([15, 13, 8, 6, 4, 2])
print(solve_iter(L))
print(solve_rec(L))

## Input

[15, 13, 8, 6, 4, 2]

## Output

True
True