题目链接:https://leetcode.cn/problems/remove-linked-list-elements/
思路:首先要处理头节点,找到第一个不是val的头节点,然后遇到val就跳过
代码:
class Solution {
public ListNode removeElements(ListNode head, int val) {
while(head != null && head.val == val){
head = head.next;
}
if(head == null){
return head;
}
ListNode pre = head;
ListNode cur = head.next;
while(cur!=null){
if(cur.val==val){
pre.next = cur.next;
}else{
pre = cur;
}
cur = cur.next;
}
return head;
}
}
题目链接:https://leetcode.cn/problems/reverse-linked-list/
思路:双指针
代码:
class Solution {
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode cur = head;
ListNode temp = null;
while (cur != null) {
temp = cur.next;// 保存下一个节点
cur.next = prev;
prev = cur;
cur = temp;
}
return prev;
}
}