LeetCode 1290 二进制链表转整数(位操作)

1290 二进制链表转整数(位操作)简单题

题目:
1.单链表
2.引用结点head(头结点)
3.每个结点的值为0或1
4.诸位读取后返回十进制

思路:
1.链表首先考虑长度,文中没有给出长度,考虑遍历到无结点的位置
2.从二进制转为十进制,每次首先读取的都是二进制的最高位,所以考虑在遍历时,先对上次结果进行左移(*2)操作,然后加上本次结果
3.位操作知识点:
3.1 << 左移,左移一位,结果 *2
3.2 >> 右移,右移一位,结果 /2
3.3 | 位或运算符 ,任何位为1,结果返回1
3.4 & 位与运算符,两位均为1,返回1,否则返回0
3.5 ^ 位XOR运算符,异或运算符,不同为1,相同为0

class Solution:
    def getDecimalValue(self, head: ListNode) -> int:
        cur = head
        ans = 0
        while cur != None:       
            ans = ans * 2 + cur.val
            cur = cur.next       
        return ans

Python一定要注意缩进!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值