LeetCode--remove-nth-node-from-end-of-list
remove-nth-node-from-end-of-list
自己的方法,很笨
public class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
if(n <= 0 || head == null) return head;
int len = 0;
ListNode node = head;
while(node != null){
node = node.next;
len++;
}
if(n == len){
return head.next;
}
int num = len - n;
node = head;
while(num > 1 && node != null){
node = node.next;
num--;
}
node.next = node.next.next;
return head;
}
}
这个居然有快慢指针的方法,厉害了,贴上方法!!!
class Solution {
public:
ListNode *removeNthFromEnd(ListNode *head, int n) {
ListNode *pfast=head;
ListNode *plow=head;
while(n--)
pfast=pfast->next;
if(pfast==NULL)
return head->next;
while(pfast->next!=NULL){
pfast=pfast->next;
plow=plow->next;
}
pfast=plow->next;
plow->next=plow->next->next;
//delete plow->next;
return head;
}
};

浙公网安备 33010602011771号