java链表合并 代码示例

ThinkPhpchengxu

温馨提示:这篇文章已超过239天没有更新,请注意相关的内容是否还可用!

java链表合并 代码示例

链表合并是指将两个链表合并成一个新的链表。合并的过程是将两个链表的节点逐个比较,按照节点的值大小依次连接起来。

我们需要定义一个链表节点类,该类包含一个值和一个指向下一个节点的指针。示例代码如下:

class ListNode {

int val;

ListNode next;

ListNode(int val) {

this.val = val;

this.next = null;

}

}

接下来,我们可以编写一个合并链表的函数,该函数接受两个链表的头节点作为参数,并返回合并后的链表的头节点。示例代码如下:

public ListNode mergeTwoLists(ListNode l1, ListNode l2) {

// 创建一个新的链表头节点

ListNode dummy = new ListNode(0);

// 创建一个指针用于遍历新链表

ListNode curr = dummy;

// 遍历两个链表,比较节点的值并连接到新链表中

while (l1 != null && l2 != null) {

if (l1.val < l2.val) {

curr.next = l1;

l1 = l1.next;

} else {

curr.next = l2;

l2 = l2.next;

}

curr = curr.next;

}

// 将剩余的节点连接到新链表的末尾

if (l1 != null) {

curr.next = l1;

} else {

curr.next = l2;

}

// 返回新链表的头节点

return dummy.next;

}

在上面的代码中,我们使用了一个虚拟头节点(dummy)来简化合并过程。我们还使用了一个指针(curr)来遍历新链表,并通过比较节点的值将节点连接到新链表的末尾。我们将剩余的节点连接到新链表的末尾,并返回新链表的头节点。

通过以上的代码示例,我们可以实现两个链表的合并,并得到一个新的链表。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码