当前位置: 首页 > news >正文

二进制链表转整数

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

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

示例 1:

img

输入: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

代码如下:

//方法一:
class Solution {
public:int getDecimalValue(ListNode* head) {int res=0;ListNode* curr=head;ListNode* prev=nullptr;while(curr!=nullptr)//反转链表{ListNode* temp=curr->next;curr->next=prev;prev=curr;curr=temp;}int t=1;//2^0=1curr=prev;//反转之后的链表链表的头部指向prev,此时让prev指向curr,链表头部为currwhile(curr!=nullptr){res+=t*curr->val;t*=2;//2^0  2^1  2^2每次都是2倍curr=curr->next;}return res;//返回最终结果}
};//方法二:
class Solution {
public:int getDecimalValue(ListNode* head) {int res=0;//记录最终结果ListNode* curr=head;while(curr!=nullptr){res=res*2+curr->val;//就相当于十进制数526=52*10+6,此时是二进制数curr=curr->next;}return res;}
};

http://www.lryc.cn/news/160890.html

相关文章:

  • Python爬虫进阶:使用Scrapy库进行数据提取和处理
  • 五)Stable Diffussion使用教程:文生图之高清修复
  • SQL SERVER 如何实现UNDO REDO 和PostgreSQL 有近亲关系吗
  • SpringBoot原理-自动配置-原理分析-源码跟踪
  • 安全基础 --- 原型链污染
  • c++中的常用知识点总结
  • Leetcode:349. 两个数组的交集【题解超详细】
  • Java 【异常】
  • B - Polycarp‘s Practice
  • 朴素贝叶斯数据分类------
  • flask中的操作数据库的插件Flask-SQLAlchemy
  • arrow的使用
  • 【24种设计模式】装饰器模式(Decorator Pattern(Wrapper))
  • 小程序v-for与key值使用
  • Qt包含文件不存在问题解决 QNetworkAccessManager
  • 【视频图像篇】FastStone Capture屏幕长截图软件
  • 【C语言】每日一题(杨氏矩阵查找数)
  • 探究SpringWeb对于请求的处理过程
  • 如何使用Google Compute Engine入门指南快速创建和配置您的云虚拟机实例
  • springMVC中全局异常处理
  • 【Nginx24】Nginx学习:压缩模块Gzip
  • 我的私人笔记(zookeeper分布式安装)
  • 小程序排名优化全攻略
  • MySQL MHA
  • Java API速记手册(持续更新ing...)
  • FANUC机器人电气控制柜内部硬件电路和模块详细介绍
  • LGFormer:LOCAL TO GLOBAL TRANSFORMER FOR VIDEO BASED 3D HUMAN POSE ESTIMATION
  • 数据结构零基础入门篇(C语言实现)
  • Hugging News #0904: 登陆 AWS Marketplace
  • Redis Redis的数据结构 - 通用命令 - String类型命令 - Hash类型命令