企业做网站费用,成都手机wap网站制作,微信公众号商城搭建,饥饿营销乌#xff01;蒙#xff01;山#xff01;连#xff01;着#xff01;山#xff01;外#xff01;山#xff01; 题目#xff1a; 思路#xff1a;
双指针#xff0c;slow和fast#xff0c;并且增加标记flag初始为1。
如果slow指向节点值等于fast指向节点值蒙山连着山外山 题目 思路
双指针slow和fast并且增加标记flag初始为1。
如果slow指向节点值等于fast指向节点值fast向后走flag置为0
如果slow指向节点值不等于fast指向节点值观察flag的值若为0slow指向fastfast向后走flag置为1然后continue观察flag的值若不为0将该节点拿下来成为我们的目标节点去处理。
剩下的就是细节以及最后一个节点的问题比较简单判断一下就好。 代码
struct ListNode* deleteDuplicates(struct ListNode* head)
{// write code hereif (head NULL || head-next NULL)return head;struct ListNode* tail NULL;struct ListNode* newhead NULL;struct ListNode* slow head;struct ListNode* fast slow-next;int flag 1;while (fast){if (slow-val fast-val){fast fast-next;flag 0;}else{if (flag 0){slow fast;fast fast-next;flag 1;continue;}if (newhead NULL){tail newhead slow;}else{tail-next slow;tail slow;}slow fast;fast fast-next;}}if (flag 1){if (tail)tail-next slow;elsenewhead slow;}else{if (tail)tail-next NULL;}return newhead;
} 个人主页Lei宝啊
愿所有美好如期而遇