当前位置:首页 > Java

java如何定义链表

2026-03-26 09:32:16Java

定义链表节点类

在Java中,链表由节点(Node)组成,每个节点包含数据域和指向下一个节点的引用。定义一个通用的链表节点类:

java如何定义链表

class ListNode {
    int val;         // 数据域
    ListNode next;   // 指向下一个节点的引用

    // 构造函数
    ListNode(int val) {
        this.val = val;
        this.next = null;
    }
}

创建链表实例

通过实例化节点并连接它们的next引用,可以手动构建链表:

java如何定义链表

ListNode head = new ListNode(1);          // 创建头节点
head.next = new ListNode(2);             // 第二个节点
head.next.next = new ListNode(3);        // 第三个节点

使用泛型支持多种数据类型

若需支持多种数据类型,可通过泛型定义节点类:

class ListNode<T> {
    T data;              // 泛型数据域
    ListNode<T> next;    // 泛型节点引用

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

// 示例:字符串链表
ListNode<String> stringHead = new ListNode<>("Hello");
stringHead.next = new ListNode<>("World");

实现链表基本操作

以下是一个完整示例,包含链表的插入、遍历和删除操作:

class LinkedList {
    ListNode head;

    // 在链表末尾添加节点
    void append(int val) {
        if (head == null) {
            head = new ListNode(val);
            return;
        }
        ListNode current = head;
        while (current.next != null) {
            current = current.next;
        }
        current.next = new ListNode(val);
    }

    // 遍历链表并打印
    void printList() {
        ListNode current = head;
        while (current != null) {
            System.out.print(current.val + " ");
            current = current.next;
        }
    }
}

// 使用示例
LinkedList list = new LinkedList();
list.append(1);
list.append(2);
list.append(3);
list.printList();  // 输出: 1 2 3

注意事项

  • 链表操作需注意空指针异常(如headnull时直接访问next)。
  • 双向链表可在节点类中增加prev引用,实现前后双向遍历。
  • Java标准库提供了LinkedList类(位于java.util包),可直接使用其内置方法。

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

相关文章

java如何定义一个数组

java如何定义一个数组

定义数组的基本语法 在Java中,数组是固定长度的同类型数据集合。定义数组需要指定数据类型和数组名称,并可以选择直接初始化或稍后分配空间。 // 声明数组但不初始化 数据类型[] 数组名; //…

react如何定义路由

react如何定义路由

定义路由的基本方法 在React中定义路由通常使用react-router-dom库,这是React生态中最流行的路由解决方案。需要安装该库后才能使用路由功能。 npm install react-…

react如何定义数据

react如何定义数据

React 中定义数据的常用方法 在 React 中,数据通常通过组件的状态(state)或属性(props)来定义和管理。以下是几种常见的方式: 使用 useState Hook 定义局部状态 适…

react如何定义整形变量

react如何定义整形变量

在React中定义整型变量 在React中,变量定义遵循JavaScript语法,JavaScript中没有严格的整型(integer)类型,所有数字都以浮点数(number)类型存储。可以通过以下方…

react如何定义全局变量csdn

react如何定义全局变量csdn

React 中定义全局变量的方法 在 React 中,可以通过多种方式定义全局变量,以下是几种常见的方法: 使用 Context API Context API 是 React 提供的用于跨组件共享…

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

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

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