[LeetCode] Convert Binary Number in a Linked List to Integer

아르당·2026년 4월 17일

LeetCode

목록 보기
266/303
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

단일 연결 리스트의 참조 노드인 head가 주어진다. 연결 리스트의 각 노드의 값은 0 또는 1이다. 연결 리스트는 숫자의 이진 표현이 저장되어 있다.

연결 리스트에 있는 십진수의 값을 반환해라.

가장 중요한 비트는 연결 리스트의 에드에 있다.

Example

#1

Input: head = [1, 0, 1]
Output: 5
Explanation: 이진수 101은 십진수 5이다.

#2
Input: head = [0]
Output: 0

Constraints

  • 연결리스트는 비어있지 않다.
  • 노드의 수는 30개를 넘지 않는다.
  • 각 노드의 값은 0 또는 1이다.

Solved

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public int getDecimalValue(ListNode head) {
        int dNum = 0;

        while(head != null){
            dNum = (dNum << 1) | head.val;
            head = head.next;
        }

        return dNum;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글