当前位置:   article > 正文

LeetCode #21. 合并两个有序链表 递归_leetcode21 java 递归

leetcode21 java 递归

https://leetcode-cn.com/problems/merge-two-sorted-lists/description/

合并两条有序链表,形成一条新的有序链表:用递归实现

1.如果其中一条链表为空,那么只需要接上(返回)另一条链表即可

2.两条链表都不为空的话就比较两条链当前位置的值大小。左链小,就用小值创建一个新结点到合并链上,合并链的下一个结点则递归调用函数合并除掉已添加的点后的两条链表

  1. /**
  2. * Definition for singly-linked list.
  3. * public class ListNode {
  4. * int val;
  5. * ListNode next;
  6. * ListNode(int x) { val = x; }
  7. * }
  8. */
  9. class Solution {
  10. public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
  11. if(l1 == null)
  12. return l2;
  13. if(l2 == null)
  14. return l1;
  15. if(l1.val <= l2.val) {
  16. ListNode l3 = new ListNode(l1.val);
  17. l3.next = mergeTwoLists(l1.next,l2);
  18. } else {
  19. ListNode l3 = new ListNode(l2.val);
  20. l3.next = mergeTwoLists(l1,l2.next);
  21. }
  22. return l3;
  23. }
  24. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/262507
推荐阅读
相关标签
  

闽ICP备14008679号