Vấn đề
Chúng tôi được yêu cầu viết một hàm JavaScript lấy phần đầu của danh sách được liên kết làm đối số đầu tiên và duy nhất.
Hàm của chúng ta sẽ trả về giá trị được lưu trữ trong nút giữa cùng của danh sách. Và nếu có hai nút ở giữa, chúng ta nên trả về nút thứ hai trong số đó.
Ví dụ:nếu danh sách như thế này:
Đầu vào
[4, 6, 8, 9, 1]
Đầu ra
const output = 8;
Sau đây là mã:
Ví dụ
class Node { constructor(data) { this.data = data; this.next = null; }; }; class LinkedList { constructor() { this.head = null; this.size = 0; }; }; LinkedList.prototype.add = function(data) { const newNode = new Node(data); let curr; if(this.head === null) { this.head = newNode; } else { curr = this.head; while(curr.next) { curr = curr.next; } curr.next = newNode; }; this.size++; }; const list = new LinkedList(); list.add(4); list.add(6); list.add(8); list.add(9); list.add(1); const findMiddle = (head) => { let slow = head let fast = head while(fast && fast.next) { slow = slow.next fast = fast.next.next } return slow.data }; console.log(findMiddle(list.head));
Đầu ra
8