将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据 Java代码
时间: 2023-10-18 14:17:26 浏览: 162
C++版本将两个有序链表合并为一个新的有序链表并返回原理及代码实现
抱歉,我可以回答您的问题:将两个递增的有序链表合并为一个递增的有序链表,需要使用双指针法。具体实现方法请参考下面的 Java 代码:
```
public void merge(ListNode head1, ListNode head2) {
if (head1 == null || head2 == null) {
return;
}
ListNode p1 = head1;
ListNode p2 = head2;
ListNode prev = null;
while (p1 != null && p2 != null) {
if (p1.val <= p2.val) {
prev = p1;
p1 = p1.next;
} else {
if (prev != null) {
prev.next = p2;
}
prev = p2;
p2 = p2.next;
prev.next = p1;
}
}
if (p1 == null) {
prev.next = p2;
}
}
```
阅读全文