十五 链表与递归,leetCode203题
2024-09-07 03:06:56
两种方式:
package com.lt.datastructure.LinkedList;
/**
* leetCode 203题
* /**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
* 第一种:不使用虚拟头结点
* 首先考虑头结点,头结点为空,返回null,如果头结点不为空,其值为val,删除头结点。
* 然后考虑非头结点,遍历链表,如果找到,删除
*/
class Solution {
public ListNode removeElements(ListNode head, int val) {
//如果头结点不为空,其值为val,删除头结点
while(head != null && head.val == val){
ListNode delNode = head;
head = head.next;
delNode.next = null;
}
if(head==null) return null;
//考虑非头结点,遍历链表,如果找到,删除
ListNode prev = head;
while(prev.next!=null){
if(prev.next.val==val){
ListNode delNode = prev.next;
prev.next = delNode.next;
delNode.next = null;
}else{
prev = prev.next;
}
}
return head;
} /**
* 第二种:使用虚拟头结点
*/
class Solution2 {
public ListNode removeElements(ListNode head, int val) {
//使用虚拟头结点简化第一种方式的代码
ListNode dummyhead = new ListNode(-1);
//指向head头结点
dummyhead.next = head;
ListNode prev = dummyhead;
while(prev.next!=null){
if(prev.next.val == val){
prev.next = prev.next.next;
}else{
prev = prev.next;
}
}
return dummyhead.next;
}
}
}
最新文章
- Process Kill Technology &;&; Process Protection Against In Linux
- POJ 2041
- bootstrap .col-md-6 文字居中问题处理
- JLOI 2013 卡牌游戏
- An exception occurred during configuration of persistence layer.
- UVA11080- Place the Guards(二分图染色)
- js/jQuery中load()、onload()、ready()的区别
- mysql的内连接,外连接(左外连接,右外连接)巩固
- Hive-ORC文件存储格式(续)
- Java 使用BigDecimal类处理高精度计算
- 数据结构与算法(十):红黑树与TreeMap详细解析
- Lending Club—构建贷款违约预测模型
- 最小生成树模板题 hpu 积分赛 Vegetable and Road again
- 《转》Babel 入门教程
- Java的Annotation标签
- 数组、ArrayList、链表、LinkedList
- TruncateATable 清除一张表
- 犯罪现场调查第一季/全集CSI迅雷下载
- nylg 开方数
- springmvc使用ajax进行数据交互时,session失效问题(@ResponseBody与session能否同时使用?)