1、逆置
//链表逆置
type Node struct{
data int
next *Node
}
func Reversenode(list *Node) *Node {
if list==nil || list.next==nil || list.next.next==nil{
return nil
}
p:=list.next
list.next=nil
var q *Node
for p!=nil{
q=p.next
p.next=list.next
list.next=p
p=q
}
return list
}
func TestReversenode(t *testing.T) {
head:=new(Node)
l1:=new(Node)
l1.data=1
l2:=new(Node)
l2.data=2
l3:=new(Node)
l3.data=3
l4:=new(Node)
l4.data=4
l5:=new(Node)
l5.data=5
head.next=l1
l1.next=l2
l2.next=l3
l3.next=l4
l4.next=l5
l5.next=nil
for p:=head.next;p!=nil;p=p.next{
fmt.Print(p.data)
}
Reversenode(head)
fmt.Print("\n")
for p:=head.next;p!=nil;p=p.next{
fmt.Print(p.data)
}
}//链表逆置
type Node struct{
dat