1. What is the difference between a dangling pointer and a null pointer?
2. Implement the strstr() function in C.
3. Given the head of a singly linked list, return the middle node of the linked list. If there are two middle nodes, return the second middle node.