1. 程式人生 > >單向連結串列取指定節點

單向連結串列取指定節點

package com.weshare.eel.task.utils;

public class Node {
    private int nodeValue;

    private Node nextNode;

    public int getNodeValue() {
        return nodeValue;
    }

    public void setNodeValue(int nodeValue) {
        this.nodeValue = nodeValue;
    }

    public Node getNextNode() {
        return 
nextNode; } public void setNextNode(Node nextNode) { this.nextNode = nextNode; } public Node(int nodeValue) { this.nodeValue = nodeValue; } }
package com.weshare.eel.task.utils;

public class LinkNode {
    private Node head = null;
    private Node tail 
= null; private int len = 0; public void addNode(int value) { Node newNode = new Node(value); // 單鏈表長度 len += 1; // 為節點設定 tail = newNode; // 頭結點為空的場合直接設定 if (null == head) { head = newNode; return; } // 臨時節點
Node temp = head; while (temp.getNextNode() != null) { temp = temp.getNextNode(); } temp.setNextNode(newNode); } public Node getHead() { return head; } public Node getTail() { return tail; } public int getLen() { return len; } }
package com.weshare.eel.task.utils;

import java.util.List;

public class Test01 {
    public static void main(String[] args) {
        LinkNode linkNode = new LinkNode();
        for (int i = 1; i <= 100; i++) {
            linkNode.addNode(i);
        }

        int len = linkNode.getLen();
        System.out.println(len);
        Node head = linkNode.getHead();

        int lentemp = 1;
        Node tempNode = head;
        while (tempNode.getNextNode() != null) {
            lentemp++;
            tempNode = tempNode.getNextNode();
        }
        System.out.println(lentemp);

        int tailk = lentemp - 2 + 1;
        int temp = 1;
        Node tailkNode = head;

        while (tailkNode.getNextNode() != null) {
            if (temp == tailk) {
                break;
            }
            temp++;

            tailkNode = tailkNode.getNextNode();
        }

        System.out.println(tailkNode.getNodeValue());
    }
}