当前位置:首页 > Java

如何用java实现链表

2026-03-18 17:32:12Java

实现链表的基本结构

链表由节点(Node)组成,每个节点包含数据(data)和指向下一个节点的引用(next)。

class Node<T> {
    T data;
    Node<T> next;

    public Node(T data) {
        this.data = data;
        this.next = null;
    }
}

定义链表类

链表类需要管理节点的增删改查操作,并维护头节点(head)。

class LinkedList<T> {
    private Node<T> head;

    public LinkedList() {
        this.head = null;
    }
}

插入节点到链表头部

将新节点插入链表头部,并更新头节点指针。

如何用java实现链表

public void insertAtHead(T data) {
    Node<T> newNode = new Node<>(data);
    newNode.next = head;
    head = newNode;
}

插入节点到链表尾部

遍历链表找到最后一个节点,将新节点链接到末尾。

public void insertAtTail(T data) {
    Node<T> newNode = new Node<>(data);
    if (head == null) {
        head = newNode;
        return;
    }
    Node<T> current = head;
    while (current.next != null) {
        current = current.next;
    }
    current.next = newNode;
}

删除指定值的节点

遍历链表找到目标节点,调整前驱节点的next指针以跳过目标节点。

如何用java实现链表

public void delete(T data) {
    if (head == null) return;
    if (head.data.equals(data)) {
        head = head.next;
        return;
    }
    Node<T> current = head;
    while (current.next != null && !current.next.data.equals(data)) {
        current = current.next;
    }
    if (current.next != null) {
        current.next = current.next.next;
    }
}

查找节点是否存在

遍历链表,检查是否存在与目标值匹配的节点。

public boolean contains(T data) {
    Node<T> current = head;
    while (current != null) {
        if (current.data.equals(data)) {
            return true;
        }
        current = current.next;
    }
    return false;
}

打印链表内容

遍历链表并依次输出每个节点的值。

public void printList() {
    Node<T> current = head;
    while (current != null) {
        System.out.print(current.data + " -> ");
        current = current.next;
    }
    System.out.println("null");
}

示例用法

创建一个链表并测试插入、删除和查找功能。

public class Main {
    public static void main(String[] args) {
        LinkedList<Integer> list = new LinkedList<>();
        list.insertAtHead(3);
        list.insertAtHead(2);
        list.insertAtHead(1);
        list.insertAtTail(4);
        list.printList(); // 输出: 1 -> 2 -> 3 -> 4 -> null

        list.delete(2);
        list.printList(); // 输出: 1 -> 3 -> 4 -> null

        System.out.println("Contains 3: " + list.contains(3)); // 输出: true
    }
}

标签: 如何用链表
分享给朋友:

相关文章

如何用css制作网页

如何用css制作网页

使用CSS制作网页的基本方法 CSS(层叠样式表)用于控制网页的样式和布局。以下是通过CSS设计和美化网页的核心方法: 链接CSS文件 在HTML文件的<head>部分添加外部CSS文件…

react中如何用回车事件

react中如何用回车事件

在React中处理回车事件 在React中,可以通过监听键盘事件来捕获回车键(Enter key)的按下动作。以下是几种常见场景的实现方法: 监听输入框的回车事件 在输入框中按下回车时触发特定操作(…

React如何用canvas画出人脸

React如何用canvas画出人脸

使用React和Canvas绘制人脸 在React中使用Canvas绘制人脸可以通过以下方法实现。这里以绘制一个简化的人脸为例,涵盖基本的脸部轮廓、眼睛、鼻子和嘴巴。 创建Canvas组件 创建一个…

react如何用ts写高阶组件

react如何用ts写高阶组件

使用 TypeScript 编写 React 高阶组件(HOC) 基本高阶组件结构 高阶组件(HOC)是一个函数,接收一个组件并返回一个新的组件。以下是 TypeScript 的基本实现方式: im…

如何用命令行新建react项目

如何用命令行新建react项目

使用 create-react-app 创建项目 安装最新版本的 create-react-app 工具后,在命令行运行以下命令生成新项目: npx create-react-app my-ap…

如何用react做一个手机端页面

如何用react做一个手机端页面

使用React开发手机端页面的关键步骤 环境准备与项目初始化 安装Node.js后,通过以下命令创建React项目: npx create-react-app mobile-app --temp…