diff --git a/src/main/java/leetcode/editor/cn/ConvertBinaryNumberInALinkedListToInteger.java b/src/main/java/leetcode/editor/cn/ConvertBinaryNumberInALinkedListToInteger.java new file mode 100644 index 0000000..6056fa0 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/ConvertBinaryNumberInALinkedListToInteger.java @@ -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) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/ConvertBinaryNumberInALinkedListToInteger.md b/src/main/java/leetcode/editor/cn/ConvertBinaryNumberInALinkedListToInteger.md new file mode 100644 index 0000000..c5ca318 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/ConvertBinaryNumberInALinkedListToInteger.md @@ -0,0 +1,49 @@ +

给你一个单链表的引用结点 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
+
+ +

 

+ +

提示:

+ + +
Related Topics
  • 位运算
  • 链表
  • \n
  • 👍 84
  • 👎 0
  • \ No newline at end of file