Brillio workflow services may represent processing stages as a singly linked list. Implement a function that reverses the list in place, supporting both an iterative pointer-based approach and a recursive approach.
Define a ListNode with an integer val field and a next pointer. Implement reverse_linked_list(head, recursive):
head is the first ListNode, or None for an empty list.recursive is False, reverse the list iteratively.recursive is True, reverse the list recursively.For test-case serialization, an input array represents the linked list values, and the expected array represents the values obtained by traversing the returned list.
def reverse_linked_list(head, recursive=False):