Java中的ListNode使用


基礎定義

public static class ListNode {
        int val;
        ListNode next = null;
        public ListNode(int val) {
            this.val = val;
        }
    }

借用leetcode的第19題來記錄ListNode的使用

  • 給你一個鏈表,刪除鏈表的倒數第 n 個結點,並且返回鏈表的頭結點。

    示例 1:

    img

    輸入:head = [1,2,3,4,5], n = 2
    輸出:[1,2,3,5]
    

    示例 2:

    輸入:head = [1], n = 1
    輸出:[]
    

    示例 3:

    輸入:head = [1,2], n = 1
    輸出:[1]
    
class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode ans=new ListNode(0);//定義一個頭節點
        ans.next=head;//頭節點指向這個鏈表
        ListNode listnode = ans;//每次調用這個鏈表只需要定義一個節點等於這個頭節點
        int length=0;
        while(listnode.next!=null){//統計鏈表長度
            length++;
            listnode=listnode.next;
        }
        ListNode temp =ans;
        for(int i = 1;i<length-n+1;i++){
            temp=temp.next;
        }
        temp.next=temp.next.next;//在倒數第n個位置前使鏈表的當前節點指向n的下一個位置
        return ans.next;//這樣做最后返回這個頭節點的next就是返回了這個新的鏈表
    }
}


免責聲明!

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



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