Java中怎么连接两个单链表,main函数怎么写
时间: 2024-10-14 17:08:59 浏览: 4
在Java中,要连接两个已排序的单链表,可以创建一个新的节点作为链接点,然后依次遍历两个链表,将每个较小的元素添加到新链表中。这里是一个简单的示例,假设我们已经有了`ListNode`类来表示链表节点:
```java
public class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode dummy = new ListNode(0); // 创建虚拟头节点
ListNode tail = dummy; // 初始化tail为dummy
int carry = 0; // 存储进位
while (l1 != null || l2 != null) {
int sum = (l1 != null ? l1.val : 0) + (l2 != null ? l2.val : 0) + carry; // 当前节点的和
carry = sum / 10; // 记录进位
tail.next = new ListNode(sum % 10); // 新建节点并添加到链表尾部
if (l1 != null) l1 = l1.next;
if (l2 != null) l2 = l2.next;
tail = tail.next; // 更新tail指向下一个位置
}
// 如果最后还有进位,需要单独处理
if (carry > 0) tail.next = new ListNode(carry);
return dummy.next; // 返回新的链表头节点
}
}
// 主函数调用示例
public static void main(String[] args) {
Solution solution = new Solution();
ListNode l1 = new ListNode(2);
l1.next = new ListNode(4);
l1.next.next = new ListNode(3);
ListNode l2 = new ListNode(5);
l2.next = new ListNode(6);
ListNode result = solution.addTwoNumbers(l1, l2);
// 打印结果链表(需要额外实现)
while (result != null) {
System.out.print(result.val + " -> ");
result = result.next;
}
}
```
阅读全文