1. 程式人生 > 實用技巧 >3.4 從無頭連結串列中刪除節點

3.4 從無頭連結串列中刪除節點

3.4 從無頭連結串列中刪除節點

基礎問題

假設有一個沒有頭指標的單鏈表,一個指標指向中間的一個節點,不是第一個節點,也不是最後一個節點,刪除該節點

擴充套件問題

給你一個連結串列,只遍歷一次,在原地翻轉連結串列

class Test{
	public static class ListNode{
		int val;
		ListNode next;
		ListNode(int x){val = x;}
	}
	public static void main(String[] args) {
		
	}
	// 從無頭節點單鏈表中刪除節點
	public void deleteListNode(ListNode node){
		if(node == null) return;
		node.val = node.next.val;
		node.next = node.next.next;
	}
	// 翻轉連結串列
	public static ListNode reverseList(ListNode head){
		if(head == null ||  head.next == null) return head;
        ListNode dummy = new ListNode(0);
        ListNode pre = head;
        ListNode cur = head.next;
        dummy.next = null;
        while(pre != null){
            pre.next = dummy.next;
            dummy.next = pre;
            pre = cur;
            if(cur != null)cur=cur.next;
        }
        return dummy.next;
	}

}