JS反转单链表


function Node(data){
    this.data = data;
    this.next = null;
}

var node1 = new Node(1);

var node2 = new Node(2);
node1.next = node2;

var node3 = new Node(3);
node2.next = node3;

var node4 = new Node(4);
node3.next = node4;


var showList = function(headNode){
    var nodeTemp = headNode;
    while(nodeTemp != null){
        console.log("------------------------")
        console.log("node data:" + nodeTemp.data);
        nodeTemp = nodeTemp.next;
    }
};

var reverseList = function(headNode){
    var headTag = headNode;
    var pCur = headTag;
    var pNext = null;
    var pPre = null;
    while(pCur != null){
        pNext = pCur.next;
        pCur.next = pPre;
        pPre = pCur;
        pCur = pNext;
    }

    return pPre;
};


console.log("---------单链表所有元素(未反转)---------");
showList(node1);

console.log("---------反转单链表所有元素--------------");
showList(reverseList(node1));

运行结果如图:

发布了10 篇原创文章 · 获赞 13 · 访问量 612

猜你喜欢

转载自blog.csdn.net/CoderXZ/article/details/105122009