1、合并两个有序链表
解法:因为两个链表都是有序的,可以定义一个虚拟节点,让两个链表的每个节点的数据域循环比较,不断将小的节点挂接在虚拟节点上串起一个新的链表。
eg:有如下两个单链表
串上第一个节点
串上第二个
。。。直到最后
合并之后:
分析:不断地通过两个指向头节点的变量遍历链表,数据域小的那个挂接在新的链表上,定义一个head始终指向新链表的头,temp指向新链表的当前最后节点。找到一个就尾插。
详细步骤:
- new一个虚拟节点并让head指向新节点的头,定义一个变量temp指向头
- headA和headB两个变量分别遍历两个链表,两个节点的数据域进行比较,小地一个比如headA就尾插到temp的next域,然后headA指向下一个节点再跟headB比较。