707. Design Linked List



在这道题翻船了(;´д`)ゞ
我太垃圾了,晚上二刷。

二刷

卡壳?

为什么翻船了呢,看下面代码:

struct node{int val;node* next;
}
class link{
public:link(){dummy = new node();dummy->val = -1;dummy->next =NULL;size = 0;}
private:node* dummy;int size;
}
int main()
{link* test = new link();link test2;
}

上面创建的test和test2都是使用我创建的构造函数。但是在执行完构造函数后,dummy居然是NULL,size(忘了)。等我学了Valgrind。再来看这个问题

刷题报告

class node {public:int val;node* next;node(int VAL) {this->val = VAL;next = NULL;}
};
class MyLinkedList {public:/** Initialize your data structure here. */MyLinkedList() {head = NULL;size = 0;}/** Get the value of the index-th node in the linked list. If the index is invalid, return -1. */int get(int index) {if (index >= size)return -1;node* walk=head;while (index-- > 0)walk = walk->next;return walk->val;}/** Add a node of value val before the first element of the linked list. After the insertion, the new node will be the first node of the linked list. */void addAtHead(int val) {node* NewNode = new node(val);NewNode->next = head;head = NewNode;size++;}/** Append a node of value val to the last element of the linked list. */void addAtTail(int val) {return addAtIndex(size, val);/*  node* NewNode = new node(val);if (size == 0)return addAtHead(val);else {node* walk=head;for (int i = 1; i < size; i++)walk = walk->next;walk->next = NewNode;size++;}*/}/** Add a node of value val before the index-th node in the linked list. If index equals to the length of linked list, the node will be appended to the end of linked list. If index is greater than the length, the node will not be inserted. */void addAtIndex(int index, int val) {if (index == 0)return addAtHead(val);else if (index > size)return;else {node* NewNode = new node(val);node* walk = head;for (int i = 1; i < index; i++)walk = walk->next;NewNode->next = walk->next;walk->next = NewNode;size++;}}/** Delete the index-th node in the linked list, if the index is valid. */void deleteAtIndex(int index) {if (index >= size)return;else if (index == 0) {node* dele = head;head = head->next;delete dele;}else {node* walk = head;while (index-- > 1)walk = walk->next;node* dele = walk->next;walk->next = dele->next;delete dele;}size--;}
private:node* head;int size;
};

LeetCode 707. Design Linked List相关推荐

  1. LeetCode 92. Reverse Linked List II--Python 解法--反转部分链表--笔试算法题

    题目地址:Reverse Linked List II - LeetCode Reverse a linked list from position m to n. Do it in one-pass ...

  2. leetcode 622. Design Circular Queue | 641. 设计循环双端队列(Java)

    题目 https://leetcode.com/problems/design-circular-deque/ 题解 相关问题:leetcode 622. Design Circular Queue ...

  3. 【回文串7】LeetCode 234. Palindrome Linked List

    LeetCode 234. Palindrome Linked List Solution1:我的答案 一遍过,哈哈哈! /*** Definition for singly-linked list. ...

  4. 【??链表】LeetCode 92. Reverse Linked List II

    LeetCode 92. Reverse Linked List II Solution1: 参考网址:http://www.cnblogs.com/grandyang/p/4306611.html ...

  5. 【手绘漫画】面试必考之手撕双链表(解题模板和深度剖析),(LeetCode 707)

    文章目录 图解算法与数据结构 1.前言 2.代码 3.正文 4.实例 图解算法与数据结构 1.前言 今天开始链表,这一讲是单链表,下一讲是双链表. 下面一起来看看吧!!! 2.代码 模板: //C++ ...

  6. C#LeetCode刷题之#707-设计链表(Design Linked List)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4118 访问. 设计链表的实现.您可以选择使用单链表或双链表.单链 ...

  7. LeetCode 206 Reverse Linked List--反转链表--迭代与递归解法--递归使用一个临时变量,迭代使用3个

    此题链接:Reverse Linked List - LeetCode Reverse a singly linked list. Example: Input: 1->2->3-> ...

  8. LeetCode 707. 设计链表(List)

    文章目录 1. 设计一个单链表 2. 双向链表 1. 设计一个单链表 在链表类中实现这些功能: get(index):获取链表中第 index 个节点的值.如果索引无效,则返回-1. addAtHea ...

  9. leetcode 203. Remove Linked List Elements(链表)

    Remove all elements from a linked list of integers that have value val. Example Given: 1 --> 2 -- ...

  10. [LeetCode] 234. Palindrome Linked List 回文链表

    Given a singly linked list, determine if it is a palindrome. Example 1: Input: 1->2 Output: false ...

最新文章

  1. 一道Python面试题,据说大部分人都中招了,纷纷开始怀疑自己
  2. 虚拟化安全防护系统部署在安全服务器上,虚拟化安全防护-安天 智者安天下
  3. php删除一张表数据的时候 把另一张表的数据也删除,剔除第一张表的数据时,修改第二张表的相关字段的数值...
  4. 使用GRUNT压缩和合并js文件
  5. I.MX6 Linux kernel LVDS backlight enable
  6. 结对编程-四则运算2
  7. 自动化运维工具puppet(四)
  8. json 和 数组的区别
  9. Linux下安装gcc5.5
  10. 数据分析---统计学基础知识
  11. realitycapture 3D建模软件
  12. Python学习笔记——入门(IDLE的使用、标准库和模块、测试和调试、虚拟编程环境)
  13. Learning Compact Binary Descriptors with Unsupervised Deep Neural Networks
  14. 常用非线性优化算法总结
  15. 生活随笔与读书笔记20140302
  16. 你现在无法访问 blog.csdn.net,因为网站使用的是 hsts。网络错误和攻击通常是暂时
  17. 计算机 绘图 教案,计算机绘图教案.doc
  18. NOI题库 数论 相关的题目 汇总-2022.01.22
  19. BIM模型导入SuperMap
  20. 自动保存表单草稿插件

热门文章

  1. 阿里巴巴2015实习面试
  2. 【团队技术知识分享 一】技术分享规范指南
  3. 如何做好一场技术分享(技巧篇)
  4. 中国石油井架行业发展前景与投资盈利预测报告2022-2027
  5. Unable to boot device due to insufficient system resources
  6. ERROR: canceling statement due to conflict with recovery
  7. lisp全部文本改宋体字型_如何将CAD里面的文字一下全改成宋体 CAD2014中如何将图...
  8. Mac怎么安装Andriod模拟器
  9. linux终端vim配色方案,Vim自定义配色方案图文并茂
  10. Mybatis关联关系