/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function ReverseList(pHead)
{
// write code here
var head = {}
head.next = pHead
if(pHead == null || pHead.next == null) {return pHead}
var current = null
var next = null
current = head.next.next
head.next.next = null
while(current!=null)
{
next = current.next
current.next = head.next
head.next = current
current = next
}
return head.next
}
module.exports = {
ReverseList : ReverseList
};
function node(id,name) {
this.id = id;
this.name = name;
this.next = null;
}
function linkList(id,name) {
this.header = new node(id,name)
}
linkList.prototype = {
addNode: function (node) {
var current = this.header
while(current.next!=null){
if(current.next.id>node.id){
break;
}
current = current.next
}
node.next = current.next;
current.next = node;
},
getLinkList: function () {
var current = this.header
if(current.next == null){
console.log('链表为空')
return
}
var txt = ''
while(current.next!=null){
txt += current.next.name + ' '
if(current.next.next == null){
break;
}
current = current.next
}
console.log(txt)
},
clear: function () {
this.header = null
},
reverse: function () {
var head = this.header
if(head == null || head.next == null){
console.log('链表为空')
}
var current = null //当前节点
var next = null //后继节点
current = head.next.next
// 将首节点设为尾结点
head.next.next = null
while(current!=null){
next = current.next
current.next = head.next
head.next = current
current = next
}
}
}
var lists = new linkList()
for(var i=0;i<8;i++){
lists.addNode(new node(i,i))
}
lists.getLinkList() // 0 1 2 3 4 5 6 7
lists.reverse()
lists.getLinkList() // 7 6 5 4 3 2 1 0