题目描述:
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
(hint: 请务必使用链表。)
分析:
剑指offer上使用的是递归的算法,自己写了一个非递归的。
java代码实现:
private static LinkedList mergeList(LinkedList list1, LinkedList list2) {
LinkedList list = new LinkedList();
Node pHead1 = list1.getHeader().next;
Node pHead2 = list2.getHeader().next;
while(pHead1.next!=null && pHead2.next!=null) {
if(pHead1.data < pHead2.data) {
list.addTail(pHead1);
pHead1 = pHead1.next;
} else {
list.addTail(pHead2);
pHead2 = pHead2.next;
}
}
while(pHead1!=null) {
list.addTail(pHead1);
pHead1 = pHead1.next;
}
while(pHead2!=null) {
list.addTail(pHead2);
pHead2 = pHead2.next;
}
return list;
}