面试题:合并升序排序的链表并去重
summary
:
这是我去人人面试的时候遇到的题,当时我写出来健壮性不好,立马就被刷了。
题目
给出两个单链表,升序排序好了,要求合并两个链表,合并之后还是升序排序,而且去重。 链表的节点结构如下:
struct Node {
: int value;
struct Node \*next;};
分析
没啥好分析,合并加去重,关键是要注意很多特殊情况,要写多一些测试用例。这里,我 用的是递归的方式实现,每次取得两个链表比较之后的头节点,并放到合并之后的链表的 后面。
我的代码
::: {.code-include lexer="cpp"} ./merge_sorted_list.cpp :::
使用了Boost的单元测试框架,链接的时候要加上
-lboost_unit_test_framework 参数。