1290:二进制链表转整数

This commit is contained in:
huangge1199 2021-06-07 11:22:55 +08:00
parent 58f5cccd49
commit 9da53e6071
2 changed files with 134 additions and 0 deletions

View File

@ -0,0 +1,85 @@
//给你一个单链表的引用结点 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
//
//
//
//
// 提示
//
//
// 链表不为空
// 链表的结点总数不超过 30
// 每个结点的值不是 0 就是 1
//
// Related Topics 位运算 链表
// 👍 84 👎 0
package leetcode.editor.cn;
import com.code.leet.entiy.ListNode;
//1290:二进制链表转整数
public class ConvertBinaryNumberInALinkedListToInteger{
public static void main(String[] args) {
//测试代码
Solution solution = new ConvertBinaryNumberInALinkedListToInteger().new Solution();
}
//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public int getDecimalValue(ListNode head) {
int num = 0;
while (head != null) {
num <<= 1;
num |= head.val;
head = head.next;
}
return num;
}
}
//leetcode submit region end(Prohibit modification and deletion)
}

View File

@ -0,0 +1,49 @@
<p>给你一个单链表的引用结点&nbsp;<code>head</code>。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。</p>
<p>请你返回该链表所表示数字的 <strong>十进制值</strong></p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<p><img alt="" src="https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2019/12/15/graph-1.png" style="height: 108px; width: 426px;"></p>
<pre><strong>输入:</strong>head = [1,0,1]
<strong>输出:</strong>5
<strong>解释:</strong>二进制数 (101) 转化为十进制数 (5)
</pre>
<p><strong>示例 2</strong></p>
<pre><strong>输入:</strong>head = [0]
<strong>输出:</strong>0
</pre>
<p><strong>示例 3</strong></p>
<pre><strong>输入:</strong>head = [1]
<strong>输出:</strong>1
</pre>
<p><strong>示例 4</strong></p>
<pre><strong>输入:</strong>head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0]
<strong>输出:</strong>18880
</pre>
<p><strong>示例 5</strong></p>
<pre><strong>输入:</strong>head = [0,0]
<strong>输出:</strong>0
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li>链表不为空。</li>
<li>链表的结点总数不超过&nbsp;<code>30</code></li>
<li>每个结点的值不是&nbsp;<code>0</code> 就是 <code>1</code></li>
</ul>
<div><div>Related Topics</div><div><li>位运算</li><li>链表</li></div></div>\n<div><li>👍 84</li><li>👎 0</li></div>