递归法寻找链表后面第i个元素

原问题是一次循环把链表后面第i个元素去掉 如1-2-3-4-5 去掉第二个就变成了 1-2-3-5

关键是对于一个链表,只进行一次循环找到后面第i个元素

可以使用递归调用找到倒数第i个元素,把该元素前面的值进行替换,最后从返回第二个元素即可.


class Solution(object):
    def removeNthFromEnd(self, head, n):
        """
        :type head: ListNode
        :type n: int
        :rtype: ListNode
        """
        def index(x):
            if(not x):
                return 0
            i=index(x.next)+1
            if(i>n):
                x.next.val=x.val
            return(i)
        index(head)
        return(head.next)


猜你喜欢

转载自blog.csdn.net/a5139515/article/details/78823542
今日推荐