【Leetcode -1290.二进制链表转整数 -剑指Offer 06.从尾到头打印链表】

这篇具有很好参考价值的文章主要介绍了【Leetcode -1290.二进制链表转整数 -剑指Offer 06.从尾到头打印链表】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Leetcode -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

我们的思路是,定义一个sum = 0,每次sum向左移,右边补0,用sum的最低位0去按位或head的val,就能得到val的值,然后head往后走,sum也往左移,继续按位或链表的下一个值,直到head为空;

		int getDecimalValue(struct ListNode* head)
		{
		    //定义sum为0,由于链表中的值不是0就是1
		    //所以每次都用sum的最低位0去按位或上head的val,即可得到val
		    //每次按位或完,head往后走;sum向左移,右边会补0
		    int sum = 0;
		    while (head)
		    {
		        sum <<= 1;
		        sum |= head->val;
		        head = head->next;
		    }
		    return sum;
		}

Leetcode -剑指Offer 06.从尾到头打印链表

题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

示例:
输入:head = [1, 3, 2]
输出:[2, 3, 1]

限制:
0 <= 链表长度 <= 10000

我们的思路是,先将链表反转,并用count计算链表长度,然后开辟一个数组空间,将反转后的链表的val放到数组中,返回数组;文章来源地址https://www.toymoban.com/news/detail-425989.html

		int* reversePrint(struct ListNode* head, int* returnSize)
		{
		    //链表为空,长度返回0,返回空
		    if (head == NULL)
		    {
		        *returnSize = 0;
		        return NULL;
		    }
		
		    //count计算链表长度
		    //反转链表
		    int count = 0;
		    struct ListNode* curr = head, * prev = NULL;
		    while (curr)
		    {
		        struct ListNode* next = curr->next;
		        curr->next = prev;
		        prev = curr;
		        curr = next;
		        count++;
		    }
		
		    //开辟一个数组返回
		    //更新返回长度
		    int* p = (int*)malloc(sizeof(int) * count);
		    *returnSize = count;
		
		    //将反转后链表中的val放到数组中
		    for (int i = 0; i < count; i++)
		    {
		        p[i] = prev->val;
		        prev = prev->next;
		    }
		
		    return p;
		}

到了这里,关于【Leetcode -1290.二进制链表转整数 -剑指Offer 06.从尾到头打印链表】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 进制转换—包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细

    目录 1.进制转换必备知识:         1.1 二进制逢2进1         8进制逢8进1           10进制逢10进1        16进制逢16进1         1.2为了区分二、八、十、十六进制,我们通常在数字后面加字母进行区分 2. 二进制与八进制、十六进制相互转换         2.1 二进制转

    2023年04月23日
    浏览(98)
  • 【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细

    目录 1.进制转换必备知识:         1.1 二进制逢2进1         8进制逢8进1           10进制逢10进1        16进制逢16进1         1.2为了区分二、八、十、十六进制,我们通常在数字后面加字母进行区分 2. 二进制与八进制、十六进制相互转换         2.1 二进制转

    2024年02月05日
    浏览(305)
  • MATLAB练习题:编写程序将十进制正整数转换为对应的二进制字符向量

     讲解视频:可以在bilibili搜索“MATLAB教程新手入门篇——数学建模清风主讲”。 MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili  编写程序将十进制正整数转换为对应的二进制字符向量。例如6对应的二进制字符向量为\\\'110\\\', 38对应的二进制字

    2024年02月02日
    浏览(51)
  • C语音:打印整数二进制的奇数位和偶数位

    获取 一个 整数二进制序列中 所有的 偶数位 和 奇数位 , 分别打印 出二进制序列                       =========================================================================                         (一). 输入 数据                           (二). 打印 奇数位 : 使用 for循

    2024年02月09日
    浏览(67)
  • C语言每日一题之整数求二进制1的个数

    今天分享一道题目,用三种方法来求解 二进制1的个数 方法1 我们的十进制除10和取余数就可以得到我们每一位的数字,那我们的二进制也可 以 这是一种方法,另外一种就是我们可以用移位操作符来算 这个方法是不是也是特别妙呢,当然还有更妙的方法,请看!!! 相信看

    2024年02月15日
    浏览(62)
  • 二进制算法题+回文链表

    先计算两个字符串公共的部分,需要维护三个变量:两个数组的指针idx+一个进位变量up 注意,这里用StringBuffer来存储结果,先存储的是个位,所以最后需要reverse一下。 21分钟 如何看一个字符是否在变化?维护一个temp变量来记录他上一次的结果。 模拟十进制转二进制:先对

    2024年02月07日
    浏览(44)
  • [保研/考研机试] KY30 进制转换-大整数转二进制 清华大学复试上机题 C++实现

    将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。 输入描述: 多组数据,每行为一个长度不超过30位的十进制非负整数。 (注意是10进制数字的个数可能有30个,而非30bits的整数) 输出描述: 每行输出对应的二进制数。 仍然是“除2取余法”,主要的区别在

    2024年02月13日
    浏览(85)
  • C++如何实现将一个整数转化为二进制数(使用尽量少的代码量)

    1、使用容器vector  这种方法非常简洁,当然使用数组也可以用不多的代码来进行实现。 将其转化为容易移植的函数如下: 注意在使用之前一定要#includevector头文件 2、一般数组实现 当然,还没有接触容器的小伙伴们也可以用普通的数组来进行实现,其算法仍然是通过对2取余

    2024年02月15日
    浏览(46)
  • 【C语言】宏实现一个整数的二进制位的奇数位和偶数位交换

    要写一个宏实现将一个整数的二进制位的奇数位和偶数位交换,我们首先要分析如何将一个整数的二进制位的奇数位和偶数位交换 以下以整数7为例 7的二进制: 0000 0000 0000 0000 0000 0000 0000 0111   7 奇数位与偶数位交换后为: 0000 0000 0000 0000 0000 0000 0000 1011  11 📖分析: 交换

    2024年02月05日
    浏览(54)
  • 51单片机LCD1602液晶屏显示字符,字符串,(有)无符号整数,十六进制数,二进制数等

    LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在嵌入式应用系统中得到越来越广泛的应用,这讲中向大家介绍的LCD1602 液晶显示模块(其内部控制器为HD44780 芯片),它可以显示两行,每行16 个字

    2024年02月04日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包