用自己的电脑做主机建网站,电商网站改版思路,网站建设需要哪些语言,临淄房产信息网123★【递归】【链表】Leetcode 21. 合并两个有序链表 解法1 #xff1a;递归链表 简直是好题啊好题多做做 ---------------#x1f388;#x1f388;题目链接#x1f388;#x1f388;------------------- 解法1 #xff1a;递归链表 简直是好题啊好题多做做
递归链表 简直是好题啊好题多做做 ---------------题目链接------------------- 解法1 递归链表 简直是好题啊好题多做做
动画解析连接 ⭐️⭐️⭐️⭐️⭐️思路总结⭐️⭐️⭐️⭐️⭐️⭐️⭐️ 基本情况递归终止条件 ⭐️如果其中一个链表为空则直接返回另一个链表。 如果两个链表都为空则合并完成返回空链表。 递归过程 ⭐️比较两个链表当前节点的值将较小的节点作为合并后链表的头节点。 ⭐️将较小节点的 next 指针指向下一次递归的结果即剩余链表的合并结果。 返回值 ⭐️返回较小节点作为合并后链表的头节点。 时间复杂度O(mn) 空间复杂度O(mn)
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/
class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {// 递归// 终止条件if(list1null) return list2;if(list2null) return list1;//本层递归逻辑 //如果当前 list1 的 val 值更小则将 list1.next 与排序好的链表头相接//如果当前 list2 的 val 值更小则将 list2.next 与排序好的链表头相接if(list1.val list2.val){list1.next mergeTwoLists(list1.next,list2);return list1; //搭好这层后需要return给上层}else{list2.next mergeTwoLists(list1,list2.next);return list2;}}
}