remove-nth-node-from-end-of-list
Posted strive-19970713
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了remove-nth-node-from-end-of-list相关的知识,希望对你有一定的参考价值。
/**
* 给定一个链表,删除链表的倒数第n个节点并返回链表的头指针
* 例如,
* 给出的链表为:1->2->3->4->5, n= 2.↵↵
* 删除了链表的倒数第n个节点之后,链表变为1->2->3->5.
* 备注:
* 题目保证n一定是合法的
* 请尝试只用一步操作完成该功能
*/
/** * 给定一个链表,删除链表的倒数第n个节点并返回链表的头指针 * 例如, * 给出的链表为:1->2->3->4->5, n= 2.↵↵ * 删除了链表的倒数第n个节点之后,链表变为1->2->3->5. * 备注: * 题目保证n一定是合法的 * 请尝试只用一步操作完成该功能 */ public class Main58 public static void main(String[] args) ListNode head = new ListNode(1); head.next = new ListNode(2); head.next.next = new ListNode(3); head.next.next.next = new ListNode(4); head.next.next.next.next = new ListNode(5); System.out.println(Main58.removeNthFromEnd(head, 2).val); public static class ListNode int val; ListNode next; ListNode(int x) val = x; next = null; public static ListNode removeNthFromEnd(ListNode head, int n) ListNode first = head; ListNode second = head; while (n-- > 0) first = first.next; ListNode pre = null; while (first.next != null) pre = second; second = second.next; first = first.next; if (pre != null) pre.next = second.next; else head = head.next; return head;
以上是关于remove-nth-node-from-end-of-list的主要内容,如果未能解决你的问题,请参考以下文章