标签:13 ListNode val -- list1 next 链表 list2
21. 合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例 1:
输入:l1 = [1,2,4], l2 = [1,3,4]
方法一:递归
/** * 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(list1 == null){ return list2; } if (list2 == null){ return list1; } else if (list1.val < list2.val){ list1.next = mergeTwoLists(list1.next,list2); return list1; } else { list2.next = mergeTwoLists(list1,list2.next); return list2; } } }
方法二:迭代
/** * 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) { ListNode listNode = new ListNode(-1); ListNode pre = listNode; while(list2 != null && list1 != null){ if (list1.val < list2.val){ pre.next = list1; list1 = list1.next; } else { pre.next = list2; list2 = list2.next; } pre = pre.next; } pre.next = list1 == null? list2:list1; return listNode.next; } }
标签:13,ListNode,val,--,list1,next,链表,list2 来源: https://www.cnblogs.com/xinger123/p/16691573.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。