反转链表
node* reverseList(node* H)
{
if (H == NULL || H->next == NULL) //链表为空或者仅1个数直接返回
return H;
node* p = H, *newH = NULL;
while (p != NULL) //一直迭代到链尾
{
node* tmp = p->next; //暂存p下一个地址,防止变化指针指向后找不到后续的数
newH = p; //新链表的头移动到p,扩长一步链表
p->next = newH; //p->next指向前一个空间
p = tmp; //p指向原始链表p指向的下一个空间
}
return newH;
}
合并
//将两个有序链表合并(循环实现)
listnode *hebing(listnode *head1,listnode *head2)
{
listnode *head=new listnode;
head->next=NULL;
//声明两个指针分别指向两个链表的数据开始部分
listnode *p1=head1->next;
listnode *p2=head2->next;
//声明一个指针来指向新链表的最后一个结点,开始时指向head
listnode *last=head;
while(