【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)!