当前位置:首页 > Java

java链表如何定义

2026-03-25 12:50:25Java

链表定义的基本结构

在Java中,链表通常通过自定义类实现,包含节点类(Node)和链表类(LinkedList)。节点类存储数据及指向下一个节点的引用,链表类管理节点的增删改查操作。

定义节点类

节点类是链表的基本单元,包含数据域和指针域:

java链表如何定义

class Node<T> {
    T data;         // 存储数据
    Node<T> next;   // 指向下一个节点的引用

    // 构造函数
    public Node(T data) {
        this.data = data;
        this.next = null;
    }
}

泛型<T>支持任意数据类型,next默认为null表示链表末尾。

java链表如何定义

定义链表类

链表类封装对节点的操作,如插入、删除和遍历:

class LinkedList<T> {
    private Node<T> head; // 头节点

    // 构造函数
    public LinkedList() {
        this.head = null;
    }

    // 在链表末尾添加节点
    public void append(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;
    }

    // 打印链表
    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.append(1);
        list.append(2);
        list.append(3);
        list.printList(); // 输出: 1 -> 2 -> 3 -> null
    }
}

其他常见操作

  • 插入头部:将新节点作为头节点,原链表接在其后。
  • 删除节点:遍历链表找到目标节点,调整前驱节点的next引用。
  • 查找节点:按值或索引遍历链表直至匹配。

通过上述结构可灵活实现单向链表,双向链表需在节点类中增加prev引用。

标签: 链表定义
分享给朋友:

相关文章

react如何定义全局变量

react如何定义全局变量

在React中定义全局变量 使用React.createContext创建全局上下文,适用于需要跨组件共享的状态或数据。 const GlobalContext = React.createCont…

react如何定义一个组件

react如何定义一个组件

定义 React 组件的两种主要方式 函数组件 使用 JavaScript/TypeScript 函数定义,适用于无状态或使用 Hooks 的组件: function Welcome(props)…

react不用redux如何定义全局变量

react不用redux如何定义全局变量

使用Context API React的Context API是官方推荐的全局状态管理方案。创建一个Context对象,通过Provider传递数据,子组件通过useContext或Consumer获…

php如何实现链表

php如何实现链表

实现链表的基本结构 在PHP中,链表可以通过类和对象来实现。每个节点是一个对象,包含数据和指向下一个节点的引用。 class ListNode { public $data; pub…

链表的实现js

链表的实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,动态增删节点更高效。 单链表的实现 class List…

js实现无序链表排序

js实现无序链表排序

实现无序链表排序的方法 在JavaScript中,可以使用多种方法对无序链表进行排序。以下是几种常见的实现方式,包括冒泡排序、归并排序和快速排序。 冒泡排序实现链表排序 冒泡排序是一种简单的排序算法…