怎样应对IT面试与笔试-(五)-1

  • 思来想去,还是把237题目放到这一部分的最后,本身代码没什么难度,亦缺乏技巧性,但关键是还真有公司当做应届生的面试题(不要问我是怎么知道的~~~),所以列出来供小伙伴们参考。这种题目属于只要你见过一遍,就知道思路的问题

237. Delete Node in a Linked List

删除链表结点(非尾结点), 例如1->2->3->4,题目给了value为3的结点,调用你写的方法后链表变为为

  • 注意理解题目意思,题目并没有要求你必须删除值为3的这个结点,只是要求通过删除一个结点,将一个1->2->3->4的链表变为1->2->3->4的链表
1.举例子-画图-解题思路
怎样应对IT面试与笔试-(五)-1_第1张图片
237.png

如果我们没有3结点的前一个结点指针,我们是没办法直接删除3结点的
我们的处理方式是将当前结点的值用下一个结点值覆盖,然后删除下一个结点即可。即将第四个结点的值覆盖第三个结点:1->2->4->4,然后删除第四个结点变为1->2->4

2. 写核心逻辑代码
void deleteNode(ListNode* node) 
{
    node->val = node->next->val;
    //我们要delete掉需要删除的结点,所以提前保存下
    ListNode *tmp = node->next;
    node->next = tmp->next;
    delete tmp;
}
3. 边界条件-无
4. 优化-无
5. 小结

怎样应对IT面试与笔试-(一)
怎样应对IT面试与笔试-(二)
怎样应对IT面试与笔试-(三)
怎样应对IT面试与笔试-(四)
怎样应对IT面试与笔试-(五)
怎样应对IT面试与笔试-(五-1)
怎样应对IT面试与笔试-(六)
怎样应对IT面试与笔试-(七)
怎样应对IT面试与笔试-(八)
怎样应对IT面试与笔试-(九)
怎样应对IT面试与笔试-(十)
怎样应对IT面试与笔试-(十一)
怎样应对IT面试与笔试-(十二)
怎样应对IT面试与笔试-(十三)
怎样应对IT面试与笔试-(十四)
怎样应对IT面试与笔试-(十五)
怎样应对IT面试与笔试-(十六)

你可能感兴趣的:(怎样应对IT面试与笔试-(五)-1)