mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
751 B
50 lines
751 B
5 years ago
|
package solutions
|
||
|
|
||
|
func pushBack(node *NodeAddL, num int) *NodeAddL {
|
||
|
nw := &NodeAddL{Num: num}
|
||
|
if node == nil {
|
||
|
return nw
|
||
|
}
|
||
|
for tmp := node; tmp != nil; tmp = tmp.Next {
|
||
|
if tmp.Next == nil {
|
||
|
tmp.Next = nw
|
||
|
return node
|
||
|
}
|
||
|
}
|
||
|
return node
|
||
|
}
|
||
|
|
||
|
func Changeorder(node *NodeAddL) *NodeAddL {
|
||
|
if node == nil {
|
||
|
return node
|
||
|
}
|
||
|
ans := &NodeAddL{Num: node.Num}
|
||
|
for tmp := node; tmp != nil; {
|
||
|
tmp = tmp.Next
|
||
|
if tmp == nil {
|
||
|
break
|
||
|
}
|
||
|
tmp = tmp.Next
|
||
|
if tmp == nil {
|
||
|
break
|
||
|
}
|
||
|
ans = pushBack(ans, tmp.Num)
|
||
|
}
|
||
|
|
||
|
if node.Next == nil {
|
||
|
return ans
|
||
|
}
|
||
|
for tmp := node.Next; tmp != nil; {
|
||
|
ans = pushBack(ans, tmp.Num)
|
||
|
tmp = tmp.Next
|
||
|
if tmp == nil {
|
||
|
break
|
||
|
}
|
||
|
tmp = tmp.Next
|
||
|
if tmp == nil {
|
||
|
break
|
||
|
}
|
||
|
}
|
||
|
return ans
|
||
|
}
|