让我先描述下……实现这样一个方法,删除不带头单链表中与val值相同的结点方法签名:ListNode*removeElements(ListNode*head,intval);ListNode类声明classListNode{public:ListNode(intx):val(x),next(NULL){}intval;ListNode*next;};逻辑很简单,当//...pre->next=p->next;//...之后,一般的做法是deletep;但这时,有个问题。当主调函数中写如下调用时,会出内存问题ListNoden0(0),n1(1),n2(2);n0.next=&n1;n1.next=&n2;//...removeElements(&n0,2);n2结点的内存是不可delete的……另外,如果在removeElements方法中不写delete逻辑,如果主调函数中,链表结点是new出来的,则不delete会内存泄露So…我想问一下,在实现类似的C++函数时,有什么一般的做法,或者业内默认规定?或者,有没有更nice的处理方式?能让方法比较安全且避免内存泄露多谢:-)
暮色呼如
墨色风雨
相关分类