>  기사  >  Java  >  Java는 연결된 목록에서 요소를 제거하는 작업을 구현합니다.

Java는 연결된 목록에서 요소를 제거하는 작업을 구현합니다.

王林
王林앞으로
2021-01-04 11:54:231729검색

Java는 연결된 목록에서 요소를 제거하는 작업을 구현합니다.

목적: 연결된 목록 요소 제거

(학습 동영상 공유: java 교육 동영상)

문제 소개:

연결된 목록에서 주어진 값 *"val*"과 동일한 모든 노드를 삭제합니다.

설명 예:

示例:
 
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5

문제 해결 아이디어:

하나는 센티넬 노드를 기반으로 하고 다른 하나는 Java 컬렉션을 기반으로 하며 본질적으로 동일합니다.

프로그램 구현:

 import java.util.*;
 
public class RemoveElementsTest3 {
    public static void main(String[] args) {
        ListNode l1 = new ListNode(1);
        ListNode l2 = new ListNode(2);
        ListNode l3 = new ListNode(6);
        ListNode l4 = new ListNode(3);
        ListNode l5 = new ListNode(4);
        ListNode l6 = new ListNode(5);
        ListNode l7 = new ListNode(6);
        l1.next = l2;
        l2.next = l3;
        l3.next = l4;
        l4.next = l5;
        l5.next = l6;
        l6.next = l7;
        ListNode listNode = removeElements2(l1, 6);
        System.out.println("listNode = " + listNode);
 
    }
 
    public static ListNode removeElements(ListNode head, int val) {
        ListNode dummyNode = new ListNode(0);
        ListNode currentNode = dummyNode;
        while (head != null) {
            if (head.val != val) {
                currentNode.next = head;
                currentNode = currentNode.next;
            }
            head = head.next;
        }
        currentNode.next = null;
        return dummyNode.next;
    }
 
    public static ListNode removeElements2(ListNode head, int val) {
        List<Integer> list = new LinkedList<>();
        while (head != null) {
            list.add(head.val);
            head = head.next;
        }
        List<Integer> tempList = new ArrayList<>();
        tempList.add(val);
        list.removeAll(tempList);
        ListNode dummyNode = new ListNode(0);
        ListNode tempNode = dummyNode;
        for (int i = 0, size = list.size(); i < size; i++) {
            ListNode listNode = new ListNode(list.get(i));
            tempNode.next = listNode;
            tempNode = tempNode.next;
        }
        return dummyNode.next;
    }
}

요약:

사실 제가 이 글을 쓸 때 , 전체 프로그램의 구현 로직을 살펴보면 이해하기 쉽다고 생각합니다. 추론해야 할 어려운 점은 주어진 프로그램을 더 디버깅하고 출력되는 내용을 보면 됩니다. 매번 성공적인 작업 후에 출력됩니다.

관련 권장 사항: Java 입문 튜토리얼

위 내용은 Java는 연결된 목록에서 요소를 제거하는 작업을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제