Chạy ❯
Nhận trang web của
riêng
bạn
×
Thay đổi định hướng
Thay đổi chủ đề, Tối/Sáng
Đi tới Không gian
Python
C
Java
class Node: def __init__(self, data): self.data = data self.next = Không có def traverseAndPrint(head): currentNode = head while currentNode: print(currentNode.data, end=" -> ") currentNode = currentNode. bản in tiếp theo("null") def deleteSpecificNode(head, nodeToDelete): if head == nodeToDelete: return head.next currentNode = head while currentNode.next và currentNode.next != nodeToDelete: currentNode = currentNode.next nếu currentNode.next là Không có: đầu trả về currentNode.next = currentNode.next.next đầu trả về node1 = Node(7) node2 = Node(11) node3 = Node(3) node4 = Node(2) node5 = Node(9) node1.next = node2 node2.next = node3 node3.next = node4 node4.next = node5 print("Trước khi xóa:") traverseAndPrint(node1) # Xóa node4 node1 = deleteSpecificNode(node1, node4) print("\nSau khi xóa:") traverseAndPrint(node1 ) #Python
#include <stdio.h> #include <stdlib.h> typedef struct Node { int data; struct Node* tiếp theo; } Nút; void traverseAndPrint(Node* head) { Node* currentNode = head; while (currentNode != NULL) { printf("%d -> ", currentNode->data); currentNode = currentNode->next; } printf("null\n"); } Node* deleteSpecificNode(Node* head, Node* nodeToDelete) { if (head == nodeToDelete) { Node* newHead = head->next; miễn phí (đầu); trả về newHead; } Nút* currentNode = head; while (currentNode->next && currentNode->next != nodeToDelete) { currentNode = currentNode->next; } if (currentNode->next == NULL) { return head; } Nút* temp = currentNode->next; currentNode->next = currentNode->next->next; miễn phí (tạm thời); trả lại đầu; } int main() { Node* node1 = malloc(sizeof(Node)); nút1->dữ liệu = 7; Nút* node2 = malloc(sizeof(Node)); nút2->dữ liệu = 11; Nút* nút3 = malloc(sizeof(Node)); nút3->dữ liệu = 3; Nút* node4 = malloc(sizeof(Node)); nút4->dữ liệu = 2; Nút* node5 = malloc(sizeof(Node)); nút5->dữ liệu = 9; nút1->tiếp theo = nút2; nút2->tiếp theo = nút3; nút3->tiếp theo = nút4; nút4->tiếp theo = nút5; printf("Trước khi xóa:\n"); traverseAndPrint(node1); nút1 = deleteSpecificNode(node1, node4); printf("\nSau khi xóa:\n"); traverseAndPrint(node1); miễn phí (nút1); miễn phí (nút2); miễn phí (nút3); miễn phí (nút5); trả về 0; } //C
lớp công khai Main { lớp tĩnh Nút { dữ liệu int; Nút tiếp theo; Nút(int data) { this.data = data; this.next = null; } } public static void traverseAndPrint(Node head) { Nút currentNode = head; while (currentNode != null) { System.out.print(currentNode.data + " -> "); currentNode = currentNode.next; } System.out.println("null"); } public static Node deleteSpecificNode(Node head, Node nodeToDelete) { if (head == nodeToDelete) { return head.next; } Nút currentNode = head; while (currentNode.next != null && currentNode.next != nodeToDelete) { currentNode = currentNode.next; } if (currentNode.next == null) { return head; } currentNode.next = currentNode.next.next; trả lại đầu; } public static void main(String[] args) { Nút node1 = Nút mới(7); Nút node2 = Nút mới (11); Nút nút3 = Nút mới(3); Nút node4 = Nút mới(2); Nút node5 = Nút mới(9); node1.next = node2; node2.next = node3; node3.next = node4; node4.next = node5; System.out.println("Trước khi xóa:"); traverseAndPrint(node1); nút1 = deleteSpecificNode(node1, node4); System.out.println("\nSau khi xóa:"); traverseAndPrint(node1); } } //Java
Kết quả Python:
Kết quả C:
Kết quả Java:
Trước khi xóa:
7 -> 11 -> 3 -> 2 -> 9 -> rỗng
Sau khi xóa:
7 -> 11 -> 3 -> 9 -> rỗng
Trước khi xóa:
7 -> 11 -> 3 -> 2 -> 9 -> rỗng
Sau khi xóa:
7 -> 11 -> 3 -> 9 -> rỗng
Trước khi xóa:
7 -> 11 -> 3 -> 2 -> 9 -> rỗng
Sau khi xóa:
7 -> 11 -> 3 -> 9 -> rỗng