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 ++ +
+ +
提示:
+ +30
。0
就是 1
。