剑指offer25-合并两个排序的链表

待解决问题:当两个链表的值有相同的时候
先放个不完整代码

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
      if(list1==null){
        return list2;
      }
      if(list2==null){
        return list1;
      }
       ListNode result=new ListNode(0);
       ListNode newList=result;//是newList指向result的意思,即指向创建的头结点,并负责移动。
      
      while(list1!=null&&list2!=null){
        if(list1.val>list2.val){
         newList.next=list2;
          list2=list2.next;
        }else{
          newList.next=list1;
          list1=list1.next;
        }
        newList=newList.next;
        //if(list1.val==list2.val){
          //newList.next=list1;
           //list1=list1.next;
           //list2=list2.next;
          //newList=newList.next;
        //}
      }
      while(list1==null&&list2!=null){
        newList.next=list2;
        list2=list2.next;
        newList=newList.next;
      }
        while(list2==null&&list1!=null){
        newList.next=list1;
        list1=list1.next;
        newList=newList.next;
      }
      return result.next;
    }
}
上一篇:代码


下一篇:逻辑(if)、关系、数字、条件运算符