力扣一周小结

力扣第一周小结

第一部分:基础

本科主要使用的是C和C++,但是最近对Java比较感兴趣,就从每天刷一道力扣开始吧,因为本人记忆力不太好,所以每周总结一次,回顾自己之前有哪些错误以及思想。如果存在问题还望各位指正。

第二部分:内容

错误一、特例处理不到位
在删除链表的节点中,因为使用了双节点,未考虑到当删除的节点是第一个的情况,所以出现删除第一个节点时报错。

class Solution {
    public ListNode deleteNode(ListNode head, int val) {
        if(head.val == val)            //特例
             return head.next;
        ListNode node = head, pre = null;
        while(node != null){
            if(node.val == val)
            {
                pre.next = node.next;
                break;
            }
            pre = node;
            node = node.next;
        }
        return head;
    }
}

错误二、理解不清楚
在输入两个链表,找出它们的第一个公共节点这题中,我以为题目中给出的范例是错误的,结果发现是自己理解错误。题目中要求的是公共节点,而我却错误的理解成节点值相同,两个节点相同不单单指的是节点内的值相同,还应该包括其内存地址等等。
力扣一周小结_第1张图片
正如上图中第一个公共节点是8而不是1。

第三部分:总结

本周在特例判断中,出现了很多情况,都没有考虑到,在下周的学习中,要更加注重。语文不好真的太难了,实在不知道说些啥,就先这样吧。

你可能感兴趣的:(leetcode)