链表基础
该结构主要是考虑到数组进行增加删除时, 会使元素前移或者后移,效率比较低
function ListNode(){
this.val = val
this.next = next
}
203.移除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点
思路一、for循环
function(head, val) {
const ret = new ListNode(0, head);
let cur = ret;
while(cur.next) {
if(cur.next.val === val) {
cur.next = cur.next.next;
continue;
}
cur = cur.next;
}
return ret.next;
};
707. 设计链表
比较长,这里直接附链接 programmercarl.com/0707.%E8%AE…
206.反转链表
思路一、双指针
function(head) {
let pre = null
let cur = head
let temp = null
while(cur){
temp = cur.next
cur.next = pre
pre = cur
cur = temp
}
return pre
};
复习一下链表前序遍历以及后序遍历
function traverse(head){
//这里写前序遍历代码
traverse(head.next)
//这里写后序遍历代码
}