题解 | #合并两个排序的链表#

合并两个排序的链表

http://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

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

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        //链表判空处理,链表1为空,则返回链表2
        if(list1 == null){
            return list2;
        }
        //链表判空处理,链表2为空,则返回链表1
        if(list2 == null){
            return list1;
        }
        //链表1.2都不为空
//         //方法一:迭代遍历
//         //初始化合并链表后的表头
//         ListNode head = null;
//         ListNode head0 = null;
//         if(list1.val <= list2.val){
//             head = list1;
//             head0 = list1;
//             list1 = list1.next;
//         }else{
//             head = list2;
//             head0 = list2;
//             list2 = list2.next;
//         }
//         //当链表1,2,都不为空时,判断链表1,2,的头结点的值大小,谁小谁在前头
//         while(list1 != null & list2 != null){
//             if(list1.val <= list2.val){
//                 head0.next = list1;
//                 head0 = list1;
//                 list1 = list1.next;
//             }else{
//                 head0.next = list2;
//                 head0 = list2;
//                 list2 = list2.next;
//             }
//         }
//         //当链表1为空时,接着链表2
//         if(list1 == null){
//             head0.next = list2;
//         }else{//当链表2为空时,接着链表1
//             head0.next = list1;
//         }
        
//         return head;
        
        
        //方法二:递归遍历
        //判断链表1,2,的头结点的值大小,谁小谁在前头
        if(list1.val <= list2.val){
            list1.next = Merge(list1.next,list2);
            return list1;
        }else{
            list2.next = Merge(list1,list2.next);
            return list2;
        }
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
牛客40297450...:不是研究生强,是你强
点赞 评论 收藏
分享
勇敢的90后想交流:我愿意付费上班,楼主你就安心字节待着吧,我是真的喜欢上班
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务