刪除鍊錶的倒數第N個節點

2021-09-11 03:21:01 字數 1251 閱讀 7643

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。

示例:給定乙個鍊錶: 1->2->3->4->5, 和 n = 2.

當刪除了倒數第二個節點後,鍊錶變為 1->2->3->5.

說明:給定的 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

"""len_link = 1

p = head #此處頭節點即第乙個節點

while( p.next ): #統計鍊錶長度

p = p.next

len_link += 1

#如果鍊錶只有乙個節點,則刪除後為空鍊錶,返回

if len_link == 1:

return

#如果刪除頭節點,則其後繼節點成為新的頭節點

if (len_link == n):

return head.next

p = head

num = 2

while ( num < len_link - n + 1):

p = p.next

num += 1

p.next = p.next.next

return head

c++

雙指標解法

/**

* definition for singly-linked list.

* struct listnode

* };

*/ class solution

while (fast->next)

slow->next = slow->next->next;

return newhead.next;

} };

刪除鍊錶倒數第N個節點

1.問題 給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.2.演算法 暴力破解法 先計算得出鍊錶的長度m,然後將鍊錶長度和所給倒數字置相減,即loc m n 1,得出刪除節點的前...

刪除鍊錶倒數第n個節點

leetcode 題目 給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.note n 鍊錶長度時,刪除頭節點 n 0時,不做任何操作。當第乙個指標first 比第二個指標領先n步,然後...

刪除鍊錶的倒數第N個節點

與查詢鍊錶的倒數第n個節點對比只改動了一行 查到倒數第n個節點後,將該節點的後續指標p1.next p1.next.next 即可 package 鍊錶中 public class nthnodefromendoflist return m 刪除倒數第n個節點 param args public s...