自学内容网 自学内容网

【d63】【Java】【力扣】142.训练计划IV

思路

出口:

1. l1 == null && l2 == null

2. 一个null 一个不为bull,但是还需要向下递归

每层:

判断哪一个更小,更小的放进新的数组

代码

递归实现

/**
 * 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 {
        //result为
        ListNode result = new ListNode();
        ListNode resultCur=result;

        public ListNode trainningPlan(ListNode l1, ListNode l2) {
            //判断出口
            if (l1 == null && l2 == null) {
                return result.next;
            }
            if (l1==null&&l2!=null){
                ListNode newNode = new ListNode(l2.val);
                resultCur.next=newNode;
                resultCur=resultCur.next;
                l2=l2.next;
                trainningPlan(l1,l2);
                
                return result.next;
            }
            if (l2==null&&l1!=null){
                ListNode newNode = new ListNode(l1.val);
                resultCur.next=newNode;
                resultCur=resultCur.next;
                l1=l1.next;
                trainningPlan(l1,l2);
                return result.next;
            }


            //每一层正常判断
            if (l1.val==l2.val){
                ListNode newNode1 = new ListNode(l1.val);
                resultCur.next=newNode1;
                resultCur=resultCur.next;
                l1=l1.next;

                ListNode newNode2 = new ListNode(l2.val);
                resultCur.next=newNode2;
                resultCur=resultCur.next;
                l2=l2.next;
                //调用下层
                trainningPlan(l1,l2);
                return result.next;

            } else if (l1.val < l2.val) {
                ListNode newNode = new ListNode(l1.val);
                resultCur.next=newNode;
                resultCur=resultCur.next;
                l1=l1.next;
                trainningPlan(l1,l2);
                return result.next;
            }
            else if (l2.val < l1.val){
                ListNode newNode = new ListNode(l2.val);
                resultCur.next=newNode;
                resultCur=resultCur.next;
                l2=l2.next;
                trainningPlan(l1,l2);
                return result.next;
            }

            return null;
        }
    }

记录

总结


原文地址:https://blog.csdn.net/m0_74814985/article/details/142757049

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!