【牛客网】剑指offer编程:合并两个排序的链表(C++)

【牛客网】剑指offer编程:合并两个排序的链表(C++) 

 方法一:非递归方法

1、创建一个虚拟头结点 temp,指向当前结点的指针 cur ;

2、当 p1,p2 都存在时(都有未合并的结点),比较两个链表当前头结点 p1,p2 的大小,

     p1 <= p2 时,cur 指向 p1, 将 p1 加入新链表中;p1 > p2 时,cur 指向 p2, 将 p2 加入新链表中。

 重复上述操作,直到其中一个链表为空,或者两个链表都为空(合并完成)。

3、如果其中一个链表不为空,那么 cur 指向该链表当前的头结点,合并完成。

【牛客网】剑指offer编程:合并两个排序的链表(C++) 

【牛客网】剑指offer编程:合并两个排序的链表(C++)

方法二:递归方法

【牛客网】剑指offer编程:合并两个排序的链表(C++)

【牛客网】剑指offer编程:合并两个排序的链表(C++)