这个链表归并哪里有问题,求解
void merge(node* p1, node* p2){ if (p1 == NULL || p2 == NULL) return; node* head = NULL; while (p1 && p2) { if (p1->data <= p2->data) { head = p1; p1 = p1->next; } else { head = p2; p2 = p2->next; } } while (p1 != NULL) { head->next = p1; p1 = p1->next; } while (p2 != NULL) { head->next = p2; p2 = p2->next; }}void merge(node* p1, node* p2){ if (p1 == NULL || p2 == NULL) return; node* head = NULL; node* pt = NULL; if (p1->data <= p2->data) { head = p1; p1 = p1->next; } else { head = p2; p2 = p2->next; } pt = head; while (p1 && p2) { if (p1->data <= p2->data) { pt->next = p1; pt = p1; p1 = p1->next; } else { pt->next = p2; pt = p2; p2 = p2->next; } } while (p1 != NULL) { pt->next = p1; pt = p1; p1 = p1->next; } while (p2 != NULL) { pt->next = p2; pt = p2; p2 = p2->next; }}