雙向鏈表按順序添加的注意點


雙向鏈表按順序添加Node的時候,要先處理Node后面的指針,再處理Node前面的指針,原因在於:

  1. 如果先把Node和鏈表前半截連起來,鏈表前半截指向鏈表后半截的指針就沒了,這樣后半截鏈表就找不到了

  2. 先把Node和鏈表后半截連起來,這樣由於Node是可以直接找到的,所以可以進行將Node和鏈表前半截連接的操作

public void addByOrder(Node node) {
        Node temp = head;
        while (true) {
            if (temp.next == null) {
                break;
            }
            if (temp.next.no >= node.no) {
                break;
            }
            temp = temp.next;
        }


        if (temp.next != null) {
            node.next = temp.next;
            temp.next.pre = node;
        }
        temp.next = node;
        node.pre = temp;
    }

另外注意如果Node放到了鏈表最后一個位置,按照一種范式連接的時候,temp.next為null會出現空指針的問題,所以要加一個判斷命令。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM