合併兩個遞增鏈表,結果鏈表不包含重複值。
if (h1->a > h2->a) {
p->next = h2; p = p->next; h2 = h2->next;
} else if (h1->a < h2->a) {
p->next = h1; p = p->next; h1 = h1->next;
} else { // 相等,只取一個,另一個指針後移
p->next = h2; p = p->next;
h2 = h2->next;
h1 = h1->next; // 跳過重複值
}
合併函數返回帶頭結點的鏈表,打印前需跳過頭結點:
h = h->next; // 跳過頭結點
print(h);
邏輯清晰,結果鏈表有序且無重複。