#include<stdio.h> #include<stdlib.h> typedef struct Node{int data; struct Node *next;}Node; Node *merge(Node *h1, Node *h2) { if (h1 == NULL) { return h2; } if (h2 == NULL) { return h1; } Node *head = NULL; if (h1->data < h2->data) { head = h1; head->next = merge(h1->next, h2); } else { head = h2; head->next = merge(h1, h2->next); } return head;
时间: 2024-03-28 19:38:49 浏览: 71
# include <stdio.h>
这段代码是实现两个有序链表的合并,使用了递归的方法。其中,h1和h2分别代表两个有序链表的头结点,head则是合并后链表的头结点。当其中一个链表为空时,直接返回另一个链表头结点即可。接着,比较h1和h2的值,将较小的那个结点作为当前合并后链表的结点,然后递归地合并h1和h2的下一个结点,将返回的结果作为当前结点的下一个结点。最后,返回合并后链表的头结点head。
阅读全文