707.设计链表

可以,真的是一个工程类的题目,处处要考虑细节,其实20分钟基本能写好,但是改各种细节又要40分钟,就是各种bug,总共花了一个小时才正确。

class MyLinkedList {
    ListNode head=null;  
    public MyLinkedList() {
    }
    
    public int get(int index) {
        if(head==null)
        return -1;
        ListNode p=head;
        for(int i=0;i<index;i++){
            p=p.next;
            if(p==null)
            return -1;
        }
        return p.val;

}
    
    public void addAtHead(int val) {
        if(head==null){
        head=new ListNode();
        head.val=val;
        return;}
        ListNode p=new ListNode();
        p.val=val;
        p.next=head;
        head=p;
    }
    
    public void addAtTail(int val) {
        if(head==null){
        head=new ListNode();
        head.val=val;
        return;}
        ListNode p1=head;
        ListNode p2=new ListNode();
        p2.val=val;
        while(p1.next!=null){
            p1=p1.next;
        }
        p1.next=p2;

}
    
    public void addAtIndex(int index, int val) {
        ListNode p=head;
        ListNode p2=new ListNode();
        p2.val=val;
        if(index<=0){
        addAtHead(val);
        return;}
        for(int i=0;i<index-1;i++){
            p=p.next;
            }
            if(p==null)
            return ;
            else{
            p2.next=p.next;
            p.next=p2;}
        
    }
    
    public void deleteAtIndex(int index) {
        if(index==0){
        head=head.next;
        return ;}
        ListNode p=head;
        for(int i=0;i<index-1;i++){
            p=p.next;}
            if(p!=null&&p.next!=null)
            p.next=p.next.next;
            else return;

}
}

面试题02.07.链表相交

我直接2层循环暴力解决。

力扣(707.面试题02.07)补9.16相关推荐

  1. 面试题02.07.链表相交

    面试题02.07链表相交 public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode hea ...

  2. C++算法学习(力扣:面试题 04.04 检查平衡性)

    力扣:面试题 04.04 检查平衡性 实现一个函数,检查二叉树是否平衡.在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1. 示例 1: 给定二叉树 [3,9,20,null, ...

  3. [LeetCode] 面试题 02.07. 链表相交

    LeetCode 面试题 02.07.链表相交 思路 题目的本意其实就是求两个链表相交处结点的指针,并返回该结点指针 步骤: Step1.分别用两个指针curA.curB指向两个链表A.B的头结点 S ...

  4. 代码随想录(day04)-LeetCode:24、19、面试题02.07、142

    代码随想录:dayo4 1. [24]两两交换链表中的节点 虚拟头结点实现 递归实现 2.[19]**删除链表的倒数第N个节点** 双指针算法 3. 面试题[02.07]:链表相交 4.[142]环形 ...

  5. LeetCode-链表-面试题 02.07. 链表相交

    描述 02.07. 链表相交 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点.如果两个链表没有交点,返回 null . 图示两个链表在节点 c1 开始相交 ...

  6. C++算法学习(力扣:面试题 16.04. 井字游戏)

    设计一个算法,判断玩家是否赢了井字游戏.输入是一个 N x N 的数组棋盘,由字符" ","X"和"O"组成,其中字符" &quo ...

  7. 力扣(LeetCode)刷题,简单题(第16期)

    目录 第1题:数组异或操作 第2题:交换数字 第3题:按既定顺序创建目标数组 第4题:数组中两元素的最大乘积 第5题:删除链表中的节点 第6题:在既定时间做作业的学生人数 第7题:二进制链表转整数 第 ...

  8. c语言a b的和 不用加号,力扣(LeetCode)刷题,简单题(第16期)

    目录 力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升. 第1题:数组异或操作 试题要求如下: 回答(C语言): int xorOp ...

  9. 力扣707设计链表(单链表,JavaScript)

    1,头指针指向列表第一个元素,尾指针指向链表最后一个元素,链表末尾的index=this.size-1 var MyLinkedList = function() {this.size=0this.h ...

最新文章

  1. 数据存储方式_寻找要操作数据的存储地址的过程称为寻址,几种寻址的方式分享...
  2. R语言ggplot2可视化散点图、移除可视化图像中的多余的图例信息、使用scale_size函数移除数据点大小的图例(legend)
  3. Hyperledger Fabric Docker 文件路径权限
  4. AJAX应注意IIS有没有.ashx扩展
  5. cmake / aux_source_directory
  6. 使用 Dockerfile 定制镜像
  7. Qt UDP的初步使用
  8. [译]JavaScript 究竟是如何工作的?(第一部分)
  9. 以 B 站为例,聊聊站内消息系统的设计
  10. 转:设置Eclipse中的tab键为4个空格的完整方法
  11. windows环境下Eclipse开发MapReduce程序遇到的四个问题及解决办法
  12. ffmpeg 推流 在H264中插入SPS、PPS 头
  13. CTFHUB技能树-Misc-流量分析-ICMP
  14. 超能搜索系统输入关键字_电商后台设计——搜索
  15. 百度云链接后的html,百度云链接失效,这样就能找回!
  16. AutoCad 批量打印
  17. windows防火墙出站规则只允许访问指定域名ip,其他出站ip全部阻止的方法
  18. vue-property-decorator
  19. 19年清北学堂冬令营游记
  20. selenium结合sikuliX操作Flash网页

热门文章

  1. Matlab实现Holland风场
  2. 洛谷每日三题之第一天
  3. 庖丁解牛分词工具使用教程
  4. 2022软科世界大学学术排名
  5. 绘画板 java_非常值得学习的java 绘图板源代码
  6. 云计算的特点与产生、云计算体系结构、新摩尔定律、云计算优势
  7. Vue基础-09-表单输入绑定
  8. codeforces 416E President's Path floyd+D(递)P(推)
  9. 教你如何求一个集合的所有非空子集的方差和
  10. Swift忽略大小写搜索子字符串的三种方法及性能对比