题解 | #小红的链表节点删除#
小红的链表节点删除
https://www.nowcoder.com/practice/d7ec3bfd942c4752aec3462658d1734f?tab=note
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
struct ListNode* longestList(struct ListNode* head ) {
// write code here
struct ListNode* p = head;
struct ListNode* r = p->next;
int res = p->val % 2;
while(r != NULL){
//余数跟前一节点的值相等就要删除这个节点
if(res == r->val % 2 || -res == r->val % 2){
//这里要注意当前节点的值和前一节点值的正负号
p->next = r->next;
r = r->next;
}
else{
p = r;
r = r->next;
}
res = p->val % 2;//记录前一个节点值的奇偶性
}
return head;
}
顺丰集团工作强度 352人发布