题意:
找到单链表倒数第n个节点,保证链表中节点的最少数量为n。
解法:我们看到这个问题首先要考虑的就是边界情况,指针是否为空?n是否为0?n是否 大于链表的长度?
边界定义好,我们就开始写代码了,定义两个指针,第一个指针走到n的时候,第二个指针开始行走,当第一个指针走到指针尾部的时候,返回第二个指针所指向的节点。
代码如下:
/** * Definition for ListNode. * public class ListNode { * int val; * ListNode next; * ListNode(int val) { * this.val = val; * this.next = null; * } * } */ public class Solution { /* * @param head: The first node of linked list. * @param n: An integer * @return: Nth to last node of a singly linked list. */ public ListNode nthToLast(ListNode head, int n) { // write your code here if(head == null||n==0){ return null; } ListNode node1 = head; for(int i = 0 ; i < n-1 ; i++){ if(node1.next!=null){ node1 = node1.next; }else{ return null; } } ListNode node2 = head; while(node1.next!=null){ node1 = node1.next; node2 = node2.next; } return node2; } }
相关推荐
一次遍历找链表倒数第n个节点是如何写的。
删除链表中倒数第N个结点后,返回结果链表的首结点
python 删除链表中倒数第N个节点(csdn)————程序
查找链表中倒数第K个节点,源代码验证通过,两种查找方法。
只遍历一次单向链表,找到倒数第N个结点,
js代码-5.1 删除链表倒数第n个节点 快慢指针
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能...
本文提供了找出链表倒数第n个节点元素的二个方法,其中一个方法是JAVA代码实现
19. 删除链表的倒数第N个节点19. 删除链表的倒数第N个节点 — Medium题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例
删除链表的倒数第 N 个结点.md
1.3.2 给定一个链表,删除链表的倒数第N个节点,并且返回链表的头结点
删除链表的倒数第 N 个结点(java代码).docx
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,
# 删除链表的倒数第N个节点 题目链接给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和
# 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点 # 示例: # 给定一个链表: 1->2->3->4->5, 和 n = 2 # 当删除了倒数第二个节点后,链表变为 1->2->3->5 # 说明: # 给定的 n 保证是有效的
c# C#_Leetcode编程题解之第19题删除链表的倒数第N个结点
19 删除链表的倒数第N个节点一、题目给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n
python_leetcode面试题解之第19题删除链表的倒数第N个结点
0019-删除链表的倒数第N个节点.py
创建一个链表,编程实现查找它的倒数第k个节点