首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetCode166|二进制链表整数

leetCode166|二进制链表整数

作者头像
码农王同学
发布2021-01-15 11:04:24
2620
发布2021-01-15 11:04:24
举报
文章被收录于专栏:后端Coder后端Coder

一,二进制链表转整数

1,问题简述

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

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

2,示例描述

示例 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。

 

3,题解思路

循环遍历链表的数据结点,然后进行计算

4,题解程序


public  class GetDecimalValueTest {
    public static void main(String[] args) {
        ListNode l1=new ListNode(1);
        ListNode l2=new ListNode(0);
        ListNode l3=new ListNode(1);
        l1.next=l2;
        l2.next=l3;
        int decimalValue = getDecimalValue(l1);
        System.out.println("decimalValue = " + decimalValue);

    }

    public static  int getDecimalValue(ListNode head) {
        if (head == null) {
            return 0;
        }
        int total = 0;
        while (head != null) {
            total = total * 2 + head.val;
            head = head.next;
        }
        return total;
    }
}

5,总结一下

单链表的数据遍历就是循环遍历,直到元素为空,其实就是迭代的思想使用

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农王同学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一,二进制链表转整数
    • 1,问题简述
      • 2,示例描述
        • 3,题解思路
          • 4,题解程序
            • 5,总结一下
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档