题目:
给定一个链表和n,移除链表倒数第n个节点,返回移除后的链表。
解题思路:
移除链表的节点,起始是改变要删除节点值和next值。把节点值改为下一个节点值,吧next值改为下一个节点的next值。需要特别注意链表长度为1时、删除的节点是最后一个节点的情况。
代码(Python):
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def removeNthFromEnd(self, head, n):
"""
:type head: ListNode
:type n: int
:rtype: ListNode
"""
List = []
count = 0
while(head):
List.append(head)
head=head.next
count = count+1
if count==1:
return None
if List[-n].next==None:
List[-n-1].next = None
return List[0]
else:
List[-n].val = List[-n].next.val
List[-n].next = List[-n].next.next
return List[0]