【LeetCode每日一题】——1290.二进制链表转整数
创始人
2024-03-21 13:55:20

文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目示例】
  • 六【解题思路】
  • 七【题目提示】
  • 八【时间频度】
  • 九【代码实现】
  • 十【提交结果】

一【题目类别】

  • 链表

二【题目难度】

  • 简单

三【题目编号】

  • 1290.二进制链表转整数

四【题目描述】

  • 给你一个单链表的引用结点 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

六【解题思路】

  • 如果学过计算机组成原理,那么这道题就没有难度,正常模拟就可以,其实就是一个反推的过程
  • 我们按照题目示例1(1->0->1)来举例
5 / 2 = 2 余 1
2 / 2 = 1 余 0
1 / 2 = 0 余 1
得到二进制数101,如果要得到原始十进制数,只需要反推即可:商 * 2(除数) + 余数:
0 * 2 + 1 = 1
1 * 2 + 0 = 2
2 * 2 + 1 = 5
这样就可以得到二进制数对应的十进制数
  • 按照以上过程操作就可以得到结果
  • 最后返回结果即可

七【题目提示】

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

八【时间频度】

  • 时间复杂度:O(n)O(n)O(n),其中nnn为链表的长度
  • 空间复杂度:O(1)O(1)O(1)

九【代码实现】

  1. Java语言版
package LinkedList;/*** @Author: IronmanJay* @Description: 1290.二进制链表转整数* @CreateTime: 2022-12-06  13:10*/
public class p1290_ConvertBinaryNumberInALinkedListToInteger {int val;p1290_ConvertBinaryNumberInALinkedListToInteger next;public p1290_ConvertBinaryNumberInALinkedListToInteger(int val) {this.val = val;}public p1290_ConvertBinaryNumberInALinkedListToInteger(int val, p1290_ConvertBinaryNumberInALinkedListToInteger next) {this.val = val;this.next = next;}public static void main(String[] args) {p1290_ConvertBinaryNumberInALinkedListToInteger node1 = new p1290_ConvertBinaryNumberInALinkedListToInteger(1);p1290_ConvertBinaryNumberInALinkedListToInteger node2 = new p1290_ConvertBinaryNumberInALinkedListToInteger(0);p1290_ConvertBinaryNumberInALinkedListToInteger node3 = new p1290_ConvertBinaryNumberInALinkedListToInteger(1);node1.next = node2;node2.next = node3;int res = getDecimalValue(node1);System.out.println("res = " + res);}public static int getDecimalValue(p1290_ConvertBinaryNumberInALinkedListToInteger head) {p1290_ConvertBinaryNumberInALinkedListToInteger p = head;int res = 0;while (p != null) {res = res * 2 + p.val;p = p.next;}return res;}}
  1. C语言版
#includestruct ListNode
{int val;struct ListNode *next;
};int getDecimalValue(struct ListNode* head)
{struct ListNode* p = head;int res = 0;while (p != NULL){res = res * 2 + p->val;p = p->next;}return res;
}/*主函数省略*/

十【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. C语言版
    在这里插入图片描述

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...