Dada una lista unida de 0 y 1, encuentre su equivalente decimal.
Input: 0->0->0->1->1->0->0->1->0 Output: 50 Input: 1->0->0 Output: 4
El valor decimal de una lista enlazada vacía se considera 0.
Inicialice el resultado como 0. Recorra la lista enlazada y, para cada Node, multiplique el resultado por 2 y agréguele los datos del Node.
Javascript
<script> // Javascript Program to find decimal value // of binary linked list // Link list Node class Node { constructor() { this.data = true; this.next = null; } } // Returns decimal value of binary // linked list function decimalValue(head) { // Initialized result var res = 0; // Traverse linked list while (head != null) { // Multiply result by 2 and add // head's data res = (res << 1) + (head.data ? 1 : 0); // Move next head = head.next; } return res; } // Utility function to create a // new node. function newNode(data) { var temp = new Node(); temp.data = (data == 1 ? true : false); temp.next = null; return temp; } // Driver code // Start with the empty list var head = newNode(1); head.next = newNode(0); head.next.next = newNode(1); head.next.next.next = newNode(1); document.write("Decimal value is " + decimalValue(head)); // This code is contributed by aashish1995 </script>
Producción :
Decimal value is 11
Complejidad de tiempo: O(n) donde n es el número de Nodes en la lista enlazada dada.
Espacio auxiliar: O(1), no se requiere espacio adicional, por lo que es una constante.
Consulte el artículo completo sobre el equivalente decimal de la lista vinculada binaria para obtener más detalles.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA