合併兩個排好序的鍊錶

2021-06-06 00:04:54 字數 886 閱讀 6921

typedef struct nodetag node;

typedef node* pnode;

node* combine(node* p1, node* p2)

while(p1!=null && p2!=null && p1->valval)

p->next = p2;

}return head;

}node* build(int a, int n)

p->next = null;

return head;

}void printl(node* head)

printf("\n");

}node* merge(node* p1, node* p2)

else

p1 = p1->next;

}else

else

p2 = p2->next;

}if(!ishead) k = k->next;

}if(p1!=null) k->next = p1;

if(p2!=null) k->next = p2;

return head;

}int main()

, b = ;

p1 = build(a, 4);

p2 = build(b, 4);

p3 = build(a, 4);

p4 = build(b, 4);

printl(p1);

printl(p2);

head1 = combine(p1, p2);

head2 = merge(p3, p4);

printl(head1);

printl(head2);

}

合併兩個己排好序的鍊錶及陣列

唉,這麼簡單的東西,說簡單是簡單,關鍵是要把這東西寫得好,老少兼知。應對所有測試用例,那就有點難了吧。話說天下之事,作於細。我們用圖來說說吧 看合併的步驟 1 2 3 4 源 ifndef combine two list h definecombine two list h include rev...

鏈結排好序的兩個鍊錶(類似於mergeSort)

題目 給定兩個已知排好序的鍊錶,將兩鍊錶鏈結,構成的新鍊錶需要排好序 思路 從鍊錶開頭比較結點大小,若第一條煉表頭節點值不大於第二條,將第一鍊錶指標指向下乙個,若第一條鍊錶值大,將第二條鍊錶指標指向下乙個。最後將剩下未到末結點的鍊錶鏈結到新鍊錶!如下 definition for singly li...

合併兩個鍊錶

就是簡單的合併兩個鍊錶,這裡要求倆個鍊錶是有序的。比如 1 2 3 4 5 和 0 7 13 合併之後為 0 1 2 3 4 5 7 13 首先,簡單介紹一下思路,首先區遍歷倆個鍊錶,如果第乙個鍊錶的值小於等於第二個鍊錶的值,那麼將第乙個鍊錶的值插入乙個新的頭節點 鍊錶中,反之如果大於第二個鍊錶的值...