美文网首页
2018-09-29

2018-09-29

作者: 陈情穗子 | 来源:发表于2018-09-29 23:39 被阅读0次
  • 剑指offer 链表中倒数第k个结点
/*public class ListNode {
int val;
ListNode next = null;

ListNode(int val) {
    this.val = val;
}
}*/
//两个相距k的指针在平移,后面一个移到头,前面一个就是倒数第k个
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
    if(head==null||k<=0)return null;
    else {
        ListNode pre = head;
        ListNode end = head;
        for(int i = 0;i<k-1;i++){
            if(end.next==null)return null;
            else end = end.next;
        }
        while(end.next!=null){
            end = end.next;
            pre = pre.next;
        }
        return pre;
    }
  }
}

  • 反转链表后,输出新表头
/*
public class ListNode {
int val;
ListNode next = null;

ListNode(int val) {
    this.val = val;
}
}*/
//先把head的下一个结点存一下,然后将head的next指针指向前一个结点pre,将pre和head都向后移,直到表尾全部排好,pre就是表头
public class Solution {
public ListNode ReverseList(ListNode head) {
    ListNode pre =null;
    ListNode next = null;
    while(head!=null){
        next = head.next;
        head.next = pre;
        pre = head;
        head = next;
    }
    return pre;
}
}
  • 合并两个排序的链表
    1. 非递归的方法
/*
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 newHead = null;
    ListNode current = null;
    while(list1!=null&&list2!=null){
        if(list1.val<=list2.val){
            if(newHead==null){
                newHead = current = list1;
            }else{
                current.next = list1;
                current = current.next;
            }
            list1 = list1.next;
        }else{
            if(newHead==null){
                newHead = current = list2;
            }else{
                current.next = list2;
                current = current.next;
            }
            list2 = list2.next;
        }
    }
    if(list1 == null){
        current.next = list2;
    }else{
        current.next = list1;
    }
    return newHead;
}
}
  1. 递归方法
/*
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;
    if(list1.val<=list2.val){
        list1.next = Merge(list1.next,list2);
        return list1;
    }else{
        list2.next = Merge(list1,list2.next);
        return list2;
    }
}
}

相关文章

  • 2018-09-29

    2018-09-29 2018-09-29 2018-09-29 【日精进打卡第0049天:元气满满】 王航~立心...

  • 2018-09-29

    2018-09-29 2018-09-29 【日精进打卡第0048天:元气满满】 王航~立心小学部 【知~学习:名...

  • Linux Basic Command

    UpDate 2018-09-29 1538230612Author unnam3dMail indv.zhang...

  • 模仿jQuery实现一个API

    title: 模仿jQuery实现一个APIdate: 2018-09-29 16:46:48tags: [Jav...

  • 照片

    鹭说:“狗仔又来了,快跑吧!” 鸭子说:“别理她!我们继续玩。” 2018-09-29 心地

  • (转)栀子花开呀开……

    《秋天的雨》教学反思 聆听栀子花开 互相关注 2018-09-29 07:52 · 字数 834 · 阅读 14 ...

  • API网关Kong(一):Nginx、OpenResty和Kon

    作者:李佶澳 转载请保留:原文地址 发布时间:2018-09-29 15:41:50 +0800 说明 Nginx...

  • Ubuntu16.04 PHP7.0升级7.2

    2018-09-29 实践Laravel项目过程中需要使用 Composer 安装最低支持版本 php7.1 的 ...

  • 04_HTML 内联框架和超链接标签

    时间:2018-09-29 姓名:魏文应 一、内联框架 在当前 html 引入另外一个 html 文件: src=...

  • Java基础-数组

    2018-09-29 格式:1)、动态初始化数据类型 [] 数组名称 = new 数据类型[100]; 2) 静态...

网友评论

      本文标题:2018-09-29

      本文链接:https://www.haomeiwen.com/subject/vrgboftx.html