首页 > 试题广场 >

翻转链表

[编程题]翻转链表
  • 热度指数:5701 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

对于一个链表 L: L0→L1→…→Ln-1→Ln,
将其翻转成 L0→Ln→L1→Ln-1→L2→Ln-2→…

输入是一串数字,请将其转换成单链表格式之后,再进行操作


输入描述:
一串数字,用逗号分隔


输出描述:
一串数字,用逗号分隔
示例1

输入

1,2,3,4,5

输出

1,5,2,4,3

备注:
数组长度不超过100000
package main

import (
    "fmt"
    "strings"
    "os"
    "bufio"
)

var in=bufio.NewReader(os.Stdin)

func main() {
    var s string
    fmt.Fscan(in,&s)
    arr:=strings.Split(s,",")
    if len(arr)==1{
        fmt.Print(arr[0])
        return
    }
    i,j:=0,len(arr)-1
    for i<j{
        if i==0{
            fmt.Printf("%v,%v",arr[i],arr[j])
        }else{
            fmt.Printf(",%v,%v",arr[i],arr[j])
        }
        i++
        j--
    }
    if i==j{
        fmt.Printf(",%v",arr[i])
    }
}

发表于 2023-03-22 13:58:46 回复(0)