- 博客(2)
- 收藏
- 关注
原创 C++中new和delete
new:实际操作为首先调用operator new函数申请内存,该函数调用malloc申请内存并对申请结果进行异常检测,并将指针类型进行强转,然后调用构造函数(实际和C中申请内存流程相似,C++中用new代替了一系列的操作,可以进行异常捕获进行内存申请结果的检查)。在new创建一个对象时,可以通过int i=new int(0)这种方式进行初始化赋值,否则调用的是默认的无参构造函数。使用new []创建多个对象时需要指定个数,此时无法指定初始化方式。 delete:实际操作为先调用析构函数,然后调用ope
2020-07-31 20:57:11 374
原创 判断链表是否相交并返回相交开始的结点,不考虑有环
解法: 通过遍历两链表到结束处的尾指针,并保存两链表的长度,判断尾指针是否相同,相同则是相交的链表,否则不相交。 在相交的基础上,根据链表的长度差,让较长的链表从头指针开始先移动差值的次数,然后两者指针一起移动,直到结点指针值相同,该值即为相交开始的结点。时间复杂度O(n),空间复杂度常数级。 自己做题时没想到该方法,主要是两个思路: 1.在遍历第一个链表时使用一个hashmap将结点指针存入,在遍历第二个链表时对每个结点判断是否在图中存在该结点,存在时该结点即为相交开始的结点,否则一直到结尾均无法
2020-07-30 22:42:22 101
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人