好买卖做网站,抖音运营推广策划方案,客户软件管理系统,wordpress 会员分销题目如下#xff1a; 思路1#xff1a;创建一个新的带头链表 #xff08;newhead#xff09;#xff0c;遍历头结点对应的值分别于x进行比较#xff0c;将不等于x的节点尾插到新的带头链表中#xff0c;返回新的带头链表的下一个节点。 
代码如下#xff1a; 
typedef …题目如下 思路1创建一个新的带头链表 newhead遍历头结点对应的值分别于x进行比较将不等于x的节点尾插到新的带头链表中返回新的带头链表的下一个节点。 
代码如下 
typedef struct ListNode ListNode;
struct ListNode* removeElements(struct ListNode* head, int val) {ListNode* newhead, * newtail;newhead  newtail  (ListNode*)malloc(sizeof(ListNode));while (head){if (head-val ! val){newtail-next  head;head  head-next;newtail  newtail-next;}else {head  head-next;}}newtail-next  NULL;return newhead-next;
} 
思路2与思路一类似只不过是空链表进行判断。 
typedef struct ListNode ListNode;
struct ListNode* removeElements(struct ListNode* head, int val) {if (head  NULL){return NULL;}// 创建空链表ListNode* newhead, * newtail;newhead  newtail  NULL;while (head) {if (head-val ! val) {// 空链表if (newhead  NULL) {newtail  newhead  head;}else {// 非空链表newtail-next  head;newtail  newtail-next;}}head  head-next;}if (newtail)newtail-next  NULL;return newhead;
}