Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

1290. 二进制链表转整数 #1

Copy link
Copy link
@yankewei

Description

@yankewei
Issue body actions

给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。

请你返回该链表所表示数字的 十进制值 。

示例 1:

描述

输入:head = [1,0,1]
输出:5
解释:二进制数 (101) 转化为十进制数 (5)

示例 2:

输入:head = [0]
输出:0

示例 3:

输入:head = [1]
输出:1

示例 4:

输入:head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0]
输出:18880

示例 5:

输入:head = [0,0]
输出:0

提示:

链表不为空。
链表的结点总数不超过 30。
每个结点的值不是 0 就是 1。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/convert-binary-number-in-a-linked-list-to-integer

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func getDecimalValue(head *ListNode) int {
    sum := 0
    for head != nil {
        sum = sum * 2 + head.Val
        head = head.Next
    }
    return sum
}
/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func getDecimalValue(head *ListNode) int {
    if head == nil {
        return 0
    }
    var s []int
    for head != nil {
        s = append(s, head.Val)
        head = head.Next
    }
    n := len(s)
    length := len(s)
    sum := 0
    for n > 0 {
        if s[n - 1] == 1 {
            sum += int(math.Pow(2, float64(length - n)))
        }
        n--
    }
    return sum
}
Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Labels

    位运算题目包含位运算解法题目包含位运算解法简单题目难度为简单题目难度为简单链表题目类型为链表题目类型为链表

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.