题目描述:
输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。
解题思路:
没有什么特别的算法思路,就是依次比较两个链表中元素点大小
代码实现:
public ListNode merge(ListNode node1, ListNode node2) {
// ListNode result = null;
ListNode result = new ListNode(0);
ListNode dummy = result;
while (node1 != null && node2 != null) {
if (node1.val < node2.val) {
result.next = node1;
node1 = node1.next;
} else {
result.next = node2;
node2 = node2.next;
}
result = result.next;
}
if(node1==null){
result.next = node2;
}
if(node2==null){
result.next = node1;
}
return dummy.next;
}
总结:
1、笔者在实现的时候,初始化result时是给了null,这是不对的,因为如果在while循环中两个if条件都不满足,就直接result.next了,此时默认值为null的result是没有next这个属性的,所以会报空指针异常,所以在初始化时还是给个初始值0