鏈表問題14——在單鏈表種刪除指定值的節點(方法二)

題目

題目可參考上一篇文章,刪除鏈表中的指定值


思路

方法二:不用任何容器,直接調整。時間複雜度O(N),空間複雜度O(1)

  1. 因爲最後計劃返回鏈表頭,所以先遍歷鏈表按順序找到第一個不等於num的節點作爲head
  2. 當遇到等於num的節點就刪除,通過pre.next=cur.next;

源碼

public class Node{
	public int value;
	public Node next;
	public Node(int data){
		this.value=data;
	} 
}

public Node removeValue2(Node head,int num){
	while(head!=null){
		if(head.value!=num){
			break;
		}
		head=head.next;
	}
	Node pre=head;
	Node cur=head;
	while(cur!=null){
		if(cur.value==num){
			pre.next=cur.next;
		}else{
			pre=cur;
		}
		cur=cur.next;

	}
	return head;
}

 

發佈了57 篇原創文章 · 獲贊 34 · 訪問量 6471
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章