首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在java中删除链表的最后一个节点?

在Java中删除链表的最后一个节点可以通过以下步骤实现:

  1. 首先,判断链表是否为空。如果链表为空,即头节点为null,则无需进行删除操作,直接返回即可。
  2. 创建两个指针,一个指向当前节点,另一个指向当前节点的前一个节点。初始时,将两个指针都指向链表的头节点。
  3. 使用一个循环遍历链表,直到当前节点的下一个节点为空。在循环中,将前一个节点指针指向当前节点,当前节点指针指向下一个节点。
  4. 当循环结束后,当前节点指针指向链表的最后一个节点,前一个节点指针指向倒数第二个节点。
  5. 将前一个节点的next指针指向null,即删除了最后一个节点。

以下是示例代码:

代码语言:txt
复制
public class ListNode {
    int val;
    ListNode next;
    
    ListNode(int val) {
        this.val = val;
    }
}

public class Solution {
    public ListNode deleteLastNode(ListNode head) {
        if (head == null) {
            return null;
        }
        
        ListNode prev = null;
        ListNode curr = head;
        
        while (curr.next != null) {
            prev = curr;
            curr = curr.next;
        }
        
        if (prev == null) {
            // 链表只有一个节点
            head = null;
        } else {
            prev.next = null;
        }
        
        return head;
    }
}

这段代码中,我们定义了一个ListNode类表示链表节点,其中包含一个值val和一个指向下一个节点的指针next。然后,我们定义了一个Solution类,其中的deleteLastNode方法用于删除链表的最后一个节点。

在该方法中,我们首先判断链表是否为空,如果为空则直接返回null。然后,我们创建两个指针prev和curr,分别指向当前节点和当前节点的前一个节点,初始时都指向链表的头节点。接下来,我们使用一个循环遍历链表,直到当前节点的下一个节点为空,循环中将prev指向curr,curr指向下一个节点。循环结束后,prev指向倒数第二个节点,curr指向最后一个节点。最后,我们根据prev是否为空来判断链表是否只有一个节点,如果是,则将头节点置为null;否则,将prev的next指针指向null,即删除了最后一个节点。最后,返回头节点。

这是一个简单的删除链表最后一个节点的实现方法,适用于单向链表。如果是双向链表,删除最后一个节点的方法类似,只需将prev的next指针指向null,并将最后一个节点的prev指针指向null即可。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版(CMYSQL):https://cloud.tencent.com/product/cmysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/iothub
  • 移动推送服务(信鸽):https://cloud.tencent.com/product/tpns
  • 对象存储(COS):https://cloud.tencent.com/product/cos
  • 区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙:https://cloud.tencent.com/solution/virtual-universe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券