今日任务
- 203.移除链表元素
- 707.设计链表
- 206.反转链表
链表理论基础
建议:了解一下链接基础,以及链表和数组的区别
文章链接
programmercarl.com/%E9%93%BE%E…
203.移除链表元素
- 建议: 本题最关键是要理解 虚拟头结点的使用技巧,这个对链表题目很重要。
- 题目链接/文章讲解/视频讲解:programmercarl.com/0203.%E7%A7…
- Leetcode链接: leetcode.cn/problems/re…
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @param {number} val
* @return {ListNode}
*/
var removeElements = function(head, val) {
};
707.设计链表
- 建议: 这是一道考察 链表综合操作的题目,不算容易,可以练一练 使用虚拟头结点
- 题目链接/文章讲解/视频讲解:programmercarl.com/0707.%E8%AE…
- Leetcode链接: leetcode.cn/problems/de…
var MyLinkedList = function() {
};
/**
* @param {number} index
* @return {number}
*/
MyLinkedList.prototype.get = function(index) {
};
/**
* @param {number} val
* @return {void}
*/
MyLinkedList.prototype.addAtHead = function(val) {
};
/**
* @param {number} val
* @return {void}
*/
MyLinkedList.prototype.addAtTail = function(val) {
};
/**
* @param {number} index
* @param {number} val
* @return {void}
*/
MyLinkedList.prototype.addAtIndex = function(index, val) {
};
/**
* @param {number} index
* @return {void}
*/
MyLinkedList.prototype.deleteAtIndex = function(index) {
};
/**
* Your MyLinkedList object will be instantiated and called as such:
* var obj = new MyLinkedList()
* var param_1 = obj.get(index)
* obj.addAtHead(val)
* obj.addAtTail(val)
* obj.addAtIndex(index,val)
* obj.deleteAtIndex(index)
*/
206.反转链表
- 建议先看我的视频讲解,视频讲解中对 反转链表需要注意的点讲的很清晰了,看完之后大家的疑惑基本都解决了。
- 题目链接/文章讲解/视频讲解:programmercarl.com/0206.%E7%BF…
- Leetcode链接: leetcode.cn/problems/re…
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var reverseList = function(head) {
};