leetcode1290-Convert Binary Number in a Linked List to Integer

题目

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

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

示例 1:

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

输出:5

解释:二进制数 (101) 转化为十进制数 (5)

分析

这道题目就遍历链表就可以实现,先确定每一位的位数,然后分别计算每一位二进制对应的十进制数累加即可

java 复制代码
public class LinkNode {
	int val;
	LinkNode next;

	public LinkNode(int data) {
		this.val = data;
		this.next = null;
	}
}
public class LinkList {
	LinkNode head;
	public LinkList() {
		this.head = null;
	}
	public LinkNode getHead() {
		return this.head;
	}
	//添加元素
	public void addNode(int data) {
		LinkNode node = new LinkNode(data);
		if (this.head == null) {
			this.head = node;
		} else {
			LinkNode cur = this.head;
			while(cur.next != null) {
				cur = cur.next;
			}
			cur.next = node;
		}
	}
	//正序打印
	public void print(LinkNode node) {
		while(node != null) {
			System.out.print(node.val);
			System.out.print(" ");
			node = node.next;
		}
		System.out.println();
	}
	public int getData() {
		LinkNode pNode = this.head;
		int cnt = 0;
		while(pNode != null) {
			cnt++;
			pNode = pNode.next;
		}
		int res = 0;
		pNode = this.head;
		while(pNode != null) {
			int tmp = cnt-1;
			int data = 1;
			while(tmp > 0) {
				data = data * 2;
				tmp--;
			}
			res = res + pNode.val * data;
			pNode = pNode.next;
			cnt--;
		}
		System.out.println(res);
		return res;
	}
}
public class convertBinaryNumberinaLinkedListtoInteger {
	public static void main(String[] args) {
		LinkList list = new LinkList();
		list.addNode(1);
		list.addNode(0);
		list.addNode(1);
		list.getData();
	}
}
相关推荐
ja哇40 分钟前
大厂面试高频八股
java·面试·职场和发展
踩坑记录1 小时前
leetcode hot100 寻找两个正序数组的中位数 hard 二分查找 双指针
leetcode
旖-旎1 小时前
深搜练习(电话号码字母组合)(3)
c++·算法·力扣·深度优先遍历
谭欣辰1 小时前
C++快速幂完整实战讲解
算法·决策树·机器学习
Mr_pyx1 小时前
【LeetHOT100】随机链表的复制——Java多解法详解
算法·深度优先
yoyo_zzm1 小时前
Laravel6.x新特性全解析
java·spring boot·后端
AIFarmer1 小时前
【无标题】
开发语言·c++·算法
Nick_zcy1 小时前
小说在线阅读网站和小说管理系统 · 功能全解析
java·后端·python·springboot·ruoyi
源码宝1 小时前
基于 SpringBoot + Vue 的医院随访系统:技术架构与功能实现
java·vue.js·spring boot·架构·源码·随访系统·随访管理
AGV算法笔记2 小时前
CVPR 2025 最新感知算法解读:GaussianLSS 如何用 Gaussian Splatting 重构 BEV 表示?
算法·重构·自动驾驶·3d视觉·感知算法·多视角视觉