21xrx.com
2024-11-05 20:27:16 Tuesday
登录
文章检索 我的文章 写文章
JavaGuide面试突击版:如何用Java实现链表
2023-06-15 16:50:50 深夜i     --     --

链表是常见的数据结构之一,由于其插入和删除数据快、空间利用率高等优点,在实际开发中经常被使用。而在Java中,如何实现一个链表呢?本篇文章将介绍如何用Java语言实现一个链表,并给出相应的代码案例,供大家学习参考。

1. 定义链表节点类

链表节点类是链表的基础,它包含两个属性:数据(data)和指向下一个节点的指针(next)。

public class ListNode {

  int data;

  ListNode next;

  public ListNode(int data)

    this.data = data;

}

2. 实现链表的插入操作

插入操作主要有两种:在链表头部插入节点和在链表尾部插入节点。在链表头部插入节点是比较简单的,只需要将新节点的next指向原头节点,然后将新节点设置为头节点即可。

public void addAtHead(int data) {

  ListNode newNode = new ListNode(data);

  newNode.next = head;

  head = newNode;

}

在链表尾部插入节点需要遍历整个链表,找到尾节点,然后将其next指向新节点。

public void addAtTail(int data) {

  ListNode newNode = new ListNode(data);

  if (head == null)

    head = newNode;

   else {

    ListNode p = head;

    while (p.next != null)

      p = p.next;

    p.next = newNode;

  }

}

3. 实现链表的删除操作

链表的删除操作主要有三种:删除头节点、删除尾节点和删除指定节点。删除头节点和删除尾节点比较简单,直接修改相应的指针即可。而删除指定节点需要遍历整个链表,找到要删除的节点,然后将其前一个节点的next指向其后一个节点。

public void deleteAtHead() {

  if (head != null)

    head = head.next;

}

public void deleteAtTail() {

  if (head == null || head.next == null)

    head = null;

    return;

  ListNode p = head;

  while (p.next.next != null)

    p = p.next;

  p.next = null;

}

public void deleteNode(int data) {

  if (head == null)

    return;

  if (head.data == data)

    head = head.next;

    return;

  ListNode p = head;

  while (p.next != null) {

    if (p.next.data == data)

      p.next = p.next.next;

     else

      p = p.next;

  }

}

以上便是如何用Java实现一个链表的介绍。通过实现链表,我们可以加深对链表的理解,掌握链表的相关操作。希望本文对大家有所帮助。

Java,链表,数据结构

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复