mx.utls.LinkedListの使い方が分からない

by tail_y
pushすると謎のvalue=0のnodeが両端に入ってきて超邪魔。
(出力の3行目)

1個も入ってない状態だと、node = linkedList.headでnullが入るので
結局whileの条件を2個書くことになる。
どうするのが正しいのこれ?
♥1 | Line 33 | Modified 2012-02-15 07:08:31 | MIT License
play

ActionScript3 source code

/**
 * Copyright tail_y ( http://wonderfl.net/user/tail_y )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/qTUM
 */

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import mx.utils.LinkedListNode;
    import mx.utils.LinkedList;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            var linkedList:LinkedList = new LinkedList();
            linkedList.push("a");
            linkedList.push("b");
            var display:Array = [];
            
            var node:LinkedListNode = linkedList.head;
            while(node != null){ // 普通LinkedListってこうやるんじゃないの?個数0の時はhead=nullだし
                display.push("node=" + node + " node.value=" + node.value);
                node = node.next;
            }
            display.push("");
            
            display.push(node == linkedList.tail);    // この最後のnodeは、tailですらない意味不明。
            
            display.push("");
            
            node = linkedList.head;
            while(node != null && node.value != null){ // こうするしか無いの?なんて無駄な
                display.push("node=" + node + " node.value=" + node.value);
                node = node.next;
            }
            display.push("");
            
            
            //
            var tf:TextField = new TextField();
            tf.width = 400;
            tf.height = 400;
            tf.text = display.join("\n");
            addChild(tf);
        }
    }
}

Forked