长沙哪里学网站建设,江苏建设厅长,个人网站备案不能盈利,动漫设计师递归#xff1a;
以下是使用递归方式实现的完整Java代码#xff0c;用于将两个升序链表合并为一个新的升序链表#xff1a;
class ListNode {int val;ListNode next;ListNode(int x) { val x; }
}class Solution {public ListNode mergeTwoLists(ListNode list1, ListNod…递归
以下是使用递归方式实现的完整Java代码用于将两个升序链表合并为一个新的升序链表
class ListNode {int val;ListNode next;ListNode(int x) { val x; }
}class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {// 递归终止条件如果其中一个链表为空返回另一个链表if (list1 null) {return list2;}if (list2 null) {return list1;}// 比较两个链表的头节点将较小的节点作为新链表的头节点if (list1.val list2.val) {list1.next mergeTwoLists(list1.next, list2);return list1;} else {list2.next mergeTwoLists(list1, list2.next);return list2;}}
}在 mergeTwoLists 方法中我们使用了递归的方式来合并两个链表。首先我们检查递归的终止条件如果其中一个链表为空我们直接返回另一个链表。然后我们比较两个链表的头节点的值将较小的节点作为新链表的头节点并递归地合并剩余的部分。最后我们返回合并后的新链表。
请注意上述代码假设输入的链表 list1 和 list2 已经是升序排列的。如果输入的链表不是升序排列的那么合并后的链表可能不是升序排列的。在实际应用中你可能需要首先对链表进行排序然后再使用上述代码进行合并。