Java 链表删除最后一个元素:高效算法实现与代码示例
"""java\npublic class ListNode {\n int val;\n ListNode next;\n \n public ListNode(int val) {\n this.val = val;\n this.next = null;\n }\n}\n\npublic class Solution {\n public ListNode deleteLastNode(ListNode head) {\n if (head == null || head.next == null) {\n return null;\n }\n \n ListNode curr = head;\n ListNode prev = null;\n \n while (curr.next != null) {\n prev = curr;\n curr = curr.next;\n }\n \n prev.next = null;\n \n return head;\n }\n}\n""". 在这个示例中,我们使用一个ListNode类来表示链表的节点,每个节点包含一个整数值val和一个指向下一个节点的指针next。\n\ndeleteLastNode方法接受一个链表的头节点head作为参数,并返回删除最后一个节点后的链表头节点。在方法中,我们首先检查链表是否为空或只有一个节点,如果是,则直接返回null。然后,我们使用两个指针curr和prev来遍历链表,找到最后一个节点。最后,我们将prev的next指针设置为null,从而删除最后一个节点。最后,我们返回原始的链表头节点。\n\n注意,在这个示例中,我们假设链表中至少有两个节点,如果链表为空或只有一个节点,我们将返回null。如果需要支持链表为空或只有一个节点的情况,可以在方法开始处添加额外的检查。
原文地址: https://www.cveoy.top/t/topic/p40t 著作权归作者所有。请勿转载和采集!