我一直用JavaScript编写单链表。 我的结构是:
public function getData( $data = 'one' )
{
if ( Auth::user()->permission == 'admin' ) {
//...
} else {
//...
}
}
public function postData( Request $request, $data = 'one' )
{
if ( Auth::user()->permission == 'admin' ) {
//...
} else {
//...
}
}
我遇到麻烦的地方:
删除最后一个方法:
function node(x)
{
this.x=x;
this.next=null;
}
function sl() //sl-singly linked list
{
this.first=null;
this.l=0; //length of list
}
即使我将指向最后一个元素的指针设为null,仍然会打印Last节点。 我附上了工作片段。操作:
生成清单:01234
调用删除最后...
预期产出:0123
我得到的:01234
sl.prototype.deletel=function()
{
if(this.first)
{
var t=this.first;
while(t.next)
t=t.next;
if(t)
t=null;
}
}
答案 0 :(得分:1)
即使我将指针指向最后一个元素null
不,你没有。 JavaScript中没有指针。 t
只是一个局部变量,你确实设置为null
,但你没有改变任何对象的属性。但是,您需要使第二个到最后一个节点的.next
属性无效:
sl.prototype.deletel = function() {
var t = this.first;
if (t) {
var n = t.next;
if (n) {
while (n.next) {
t = n;
n = n.next;
}
t.next = null; // remove last node from second-to-last
} else {
this.first = null; // remove last node from list
}
}
};