题解 | #删除链表的倒数第n个节点#

删除链表的倒数第n个节点

https://www.nowcoder.com/practice/f95dcdafbde44b22a6d741baf71653f6

package main
import . "nc_tools"
/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
  * 
  * @param head ListNode类 
  * @param n int整型 
  * @return ListNode类
*/
func removeNthFromEnd(head *ListNode, n int) *ListNode {
	if n <= 0 {
		return head
	}
	var p *ListNode
	var q *ListNode
	var preP *ListNode
	for ; n > 0; n-- {
		if q == nil {
			q = head
		} else {
			q = q.Next
		}
	}
	for q != nil {
		preP = p
		if p == nil {
			p = head
		} else {
			p = p.Next
		}
		q = q.Next
	}
	if preP == nil {
		tmp := head.Next
		head.Next = nil
		return tmp
	} else {
		if p != nil {
			preP.Next = p.Next
			p.Next = nil
		} else {
			preP.Next = nil
		}
		return head
	}
	// write code here
}

全部评论

相关推荐

2025-12-14 11:43
黑龙江大学 Java
用微笑面对困难:确实比较烂,可以这么修改:加上大学的qs排名,然后大学简介要写一些,然后硕士大学加大加粗,科研经历第一句话都写上在复旦大学时,主要负责xxxx,简历左上角把学校logo写上,建议用复旦大学的简历模板
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务