C*******n 发帖数: 193 | 1 /**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *removeNthFromEnd(ListNode *head, int n) {
if (n==0 || !head){
return NULL;
}
ListNode* res = new ListNode(0);
res->next = head;
head = res;
ListNode* p=head;
ListNode* q=head;
for (int i=0;i<=n;i++){
if (q){
q=q->next;
}else{
return NULL;
}
}
while (q){
p=p->next;
q=q->next;
}
p->next=p->next->next; ///这句为什么能够删除指针?
return head->next;
}
};
p->next=p->next->next; ///这句为什么能够删除指针? 没有太明白阿。
謝謝 |
g***j 发帖数: 1275 | 2 这句没有“删除”指针,只是原来1指向2 2指向3 现在直接1指向3了 看起来2被删除了
,其实没有 只是看不到了
需要delete
不然有memory leak |
C*******n 发帖数: 193 | 3 还是不懂 比如我有10个元素 删除最后四个 那 经过那一步 等于6的指针指向8 还是不
对啊
谢谢
★ 发自iPhone App: ChineseWeb 8.7
【在 g***j 的大作中提到】 : 这句没有“删除”指针,只是原来1指向2 2指向3 现在直接1指向3了 看起来2被删除了 : ,其实没有 只是看不到了 : 需要delete : 不然有memory leak
|
g***j 发帖数: 1275 | 4 原来如此,你题目意思理解错了,是倒数第n个,不是n个
nth not n
【在 g***j 的大作中提到】 : 这句没有“删除”指针,只是原来1指向2 2指向3 现在直接1指向3了 看起来2被删除了 : ,其实没有 只是看不到了 : 需要delete : 不然有memory leak
|
g****e 发帖数: 352 | |