网站案例分析长沙旅游必去十大景点推荐
一.移除链表元素
1.题目链接
203. 移除链表元素 - 力扣(LeetCode)
2.思路
通过
while循环来遍历链表,只要cur的下一个节点不为空,就继续循环。在循环中,对cur的下一个节点的值进行判断:
- 值不等于
val的情况:如果cur.next.val不等于val,说明当前cur的下一个节点不需要移除,那么将cur指针向后移动一位,即cur = cur.next,继续检查后续节点。- 值等于
val的情况:如果cur.next.val等于val,说明当前cur的下一个节点是需要移除的目标节点。此时,将cur的next指针直接指向cur.next.next,这样就跳过了值为val的节点,从而将其从链表中移除。在移除节点后,cur指针不需要移动,因为下一个新的节点还没有被检查,需要继续在当前位置进行判断。
3.代码
class Solution {public ListNode removeElements(ListNode head, int val) {ListNode dummy=new ListNode(0);dummy.next=head;ListNode cur=dummy;while(cur.next!=null){if(cur.next.val!=val){cur=cur.next;}else{cur.next=cur.next.next;}}return dummy.next;}
}
二.反转链表
1.题目链接
206. 反转链表 - 力扣(LeetCode)
3.代码
class Solution {public ListNode reverseList(ListNode head) {ListNode pre=null;ListNode cur=head;while(cur!=null){ListNode cur_next=cur.next;cur.next=pre;pre=cur;cur=cur_next;}return pre;}
}
