题解 | #反转链表#

反转链表

https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

package main
import "fmt"
import . "nc_tools"
/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param head ListNode类 
 * @return ListNode类
*/
func ReverseList( head *ListNode ) *ListNode {
    // write code here
    if head == nil{
        fmt.Print(head)
        return head
    }
    inode := head.Next
    preNode := head
    if preNode != nil && inode == nil{
        fmt.Print(preNode.Val)
        return head
    }else if inode.Next == nil {

        inode.Next = preNode
        preNode.Next = nil
        fmt.Print(inode.Val)
        fmt.Print(preNode.Val)
        return inode
    }else{
        for inode != nil{
            nextNode := inode.Next
            inode.Next = preNode
            preNode = inode
            inode = nextNode
        }
        head.Next = nil
        for node := preNode;node.Next != nil;node = node.Next{
            fmt.Print(node.Val)
        }
        return preNode

    }
    
}

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务