1、释放链表节点时要注意,不要出现先保存虚拟头节点,然后又释放的情况,
释放后的地址不应该被使用
正确写法:
ListNode *dhead = new ListNode(0,head);//虚拟头结点
ListNode *result = dhead->next;
//释放dhead之前,使用result保存
delete dhead;
错误写法:
ListNode *result = dhead;
delete dhead;
return result->next;
2、对于链表操作题,head是一个节点,很可能被移除
return result;
//不能返回head,head在迭代中,很可能已经迷失
//返回就应该写dhead->next
3、哈希表map的查询操作时
auto iter = mymap.find(a);
//当使用map和set的find函数时,
//找不到时,会返回mymap.end()