removeNthFromEnd 移除链表中倒数第n个节点
给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.
解题思路:
思路简单直接递归向下找到尾部节点,然后返回值加1挡得到倒数第n个数的时候完成删除节点操作
python解法
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def removeNthFromEnd(self, head, n):
"""
:type head: ListNode
:type n: int
:rtype: ListNode
"""
dimhead = ListNode(0)
dimhead.next = head
i, node = self.removenode(dimhead, n)
return node.next
def removenode(self, head, n):
if not head.next:
return 1, head
i,node = self.removenode(head.next, n)
if i == n:
head.next = node.next
return i + 1, head