leetcode19.刪除連結串列的倒數第N個節點
1.題目:
給定一個連結串列,刪除連結串列的倒數第 n 個節點,並且返回連結串列的頭結點。
2.示例:
示例:
給定一個連結串列: 1->2->3->4->5, 和 n = 2.
當刪除了倒數第二個節點後,連結串列變為 1->2->3->5.
3.思路:
設定前後指標,前指標先走n步,然後一起走,前面指標到連結串列尾部,後面指標到要刪除的節點。
4.程式碼:
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode* front=head;
ListNode* back=head;
ListNode* pre=new ListNode(INT_MIN);
while(n>0){
front=front->next;
n–;
}
if(front==NULL) return head->next;//刪除第一個節點
while(front!=NULL){
pre=back;
back=back->next;
front=front->next;
}
pre->next=back->next;
return head;
}
相關推薦
LeetCode19 刪除連結串列倒數第N個節點
Given a linked list, remove the n-th node from the end of list and return its head. Example: Given linked list: 1->2->3->4->5, and
常見連結串列操作-刪除連結串列倒數第n個節點(JAVA實現)
問題 給出一個單向連結串列,刪除該連結串列倒數第n個節點,並返回頭節點。 例如: 給出連結串列 1->2->3->4->5,n=2 返回連結串列 1->2->3->5 解題思路 最容易想到的演算法: 先遍歷一次連結串列,
19 刪除連結串列倒數第N個節點
2.刪除連結串列倒數第N個節點 普通方法 ListNode *removeNthFromEnd(ListNode *head, int n) { if(head->next==nullptr) return nullptr; ListNode *first =
每天一道LeetCode-----刪除連結串列倒數第n個節點
原題連結Remove Nth Node From End of List 意思是給定一個連結串列,要求刪除倒數第n個節點,返回連結串列頭,複雜度在O(n) 思路就是找到倒數第n個和倒數第n+
leetcode 刪除連結串列倒數第n個節點(一次掃描)
題目描述 給定一個連結串列,刪除連結串列的倒數第 n 個節點,並且返回連結串列的頭結點。 演算法思想 採用一次掃描的辦法,需要定位到刪除節點的前面的節點 因此指標p往後挪動的個數為n+1次 注意如果p挪動之後,碰到空,說明刪除的是頭結點 使用兩個指標,一個從頭還是挪動,一
leetcode:Remove Nth Node From End of List(刪除連結串列倒數第n個節點)【面試演算法題】
題目: Given a linked list, remove the nth node from the end of list and return its head. For example, Given linked list: 1->2->
刪除連結串列倒數第 n 個結點
Java程式碼實現:刪除連結串列倒數第 n 個結點 問題描述: 給你一個單向連結串列,刪除連結串列倒數第n個結點,然後返回head結點。這裡的數字n是有效數字。 Given linked list: 1->2->3->4->5, and n = 2. 移
連結串列常用操作 單鏈表反轉 連結串列中環的檢測 兩個有序的連結串列合併 刪除連結串列倒數第 n 個結點 求連結串列的中間結點
#include <stdio.h> #include <stdlib.h> /** * 1) 單鏈表反轉 * 2) 連結串列中環的檢測 * 3) 兩個有序的連結串列合併 * 4) 刪除連結串列倒數第 n 個結點 * 5) 求連結串列的中間
lintcode 連結串列倒數第n個節點
lintcode 連結串列倒數第n個節點 每日一練 加油 描述 找到單鏈表倒數第n個節點,保證連結串列中節點的最少數量為n。 樣例 給出連結串列 3->2->1->5->null和n = 2,返回倒數第二個節點的值1. 思路 第一個反應,先
移除連結串列倒數第N個節點
給定一個連結串列,刪除連結串列的倒數第 n 個節點,並且返回連結串列的頭結點。 示例: 給定一個連結串列: 1->2->3->4->5, 和 n = 2. 當刪除了倒數第二個節點後,連結串列變為 1->2->3->5. 思路:
[LeetCode] Remove Nth Node From End of List 移除連結串列倒數第N個節點
Given a linked list, remove the nth node from the end of list and return its head. For example, Given linked list: 1->2->3->4->5, and n
Lintcode 166.連結串列倒數第n個節點
1.問題描述:找到單鏈表倒數第n個節點,保證連結串列中節點的最少數量為n 2.解題思路:建立兩個指向head的指標p q,讓p遍歷,p先開始移動,p走到第n-1個節點是,之後p q 一起往後移動,這時候當p指向最後一個節點的時候,q就指向了倒數第n個節點的位置,這時候返回q
連結串列-連結串列倒數第n個節點-簡單
描述找到單鏈表倒數第n個節點,保證連結串列中節點的最少數量為n。您在真實的面試中是否遇到過這個題? 是樣例給出連結串列 3->2->1->5->null和n = 2,返回倒數第
python---連結串列倒數第n個節點
""" Definition of ListNode class ListNode(object): def __init__(self, val, next=None): self.val = val self.nex
連結串列倒數第 k 個節點
#include <iostream> struct ListNode { int m_nValue; ListNode* m_pNext; }; /* 查詢連結串列倒數第 k 個結點 */ ListNode* FindKthToTail(ListNode* pHea
查詢連結串列倒數第k個節點
演算法描述: 給出一個單向連結串列的頭指標(根指標),輸出該連結串列中倒數第k個節點的指標。連結串列的倒數第0個節點的尾節點(尾節點的next成員為NULL)。函式find_node實現上述功能,連結串列節點定義及函式宣告如下,請實現函式find_node。 typedef
【面試題】 求連結串列倒數第K個節點
題目:輸入一個連結串列輸出連結串列中的第K個節點,(計數從1開始),連結串列節點定義如下: //定義結構 struct ListNode { ListNode() :_next(NULL) ,_data(0) {} ListNode *_next; int
連結串列(5)----查詢連結串列倒數第K個節點
1、連結串列定義 typedef struct ListElement_t_ { void *data; struct ListElement_t_ *next; } ListElement_t; typedef struct List_t_{
刪除鏈表倒數第n個節點
val lin nod clas next pre def end list 題目: 給定一個鏈表,刪除鏈表的倒數第 n 個節點,並且返回鏈表的頭結點。 示例: 給定一個鏈表: 1->2->3->4->5, 和 n = 2. 當刪除了倒數
LeetCode19刪除連結串列的倒數第N個節點
題目描述: 給定一個連結串列,刪除連結串列的倒數第 n 個節點,並且返回連結串列的頭結點。 示例: 給定一個連結串列: 1->2->3->4->5, 和 n = 2. 當刪除了倒數第二個節點後,連結串列變為 1->2->3->5.