給乙個定值x,將鍊錶分為兩部分,小於x的放在左邊,大於x的放在右邊.
可設定兩個鍊錶分別為lefthead與lefttail,righthead與righttail用與儲存大於或小於x的值,最後在將兩個鍊錶連線起來即可
class
listnode
@override
public string tostring()
return sb.
tostring()
;}}public
class
partion
else
}else
else
} p=p.next;}if
(lefthead==null)
return righthead;
//左邊為空返回右邊
lefttail.next=righthead;
//連線左右兩節點
if(righttail!=null)righttail.next=null;
return lefthead;
}public
static
void
main
(string[
]args
;for
(int i=
0;ilistnode p1=
partition
(head,5)
; system.out.
println
(p1);}
}
刪除鍊錶中等於給定值val的所有節點
刪除鍊錶中等於給定值val的所有節點 例如 給出鍊錶1 2 3 3 4 5 3,和 val 3,你需要返回刪除3之後的鍊錶 1 2 4 5 way1 迭代 追加人為表頭 陷入沒有表頭的陷阱,總是想記下刪除節點的先驅,導致折騰了很久,其實只要人為加乙個表頭就簡單很多了!definition for s...
刪除鍊錶中給定值等於val的所有結點
刪除鍊錶中給定值等於val的所有結點 1.無頭結點,直接遍歷,刪除與val相等的結點 struct listnode struct listnode removeelements struct listnode head,int val else if head val val return hea...
刪除鍊錶中等於給定值 val 的所有節點。
採用快慢針的方法,listnode p指向鍊錶頭部,listnode q p.next。再定義乙個listnode start表示刪除指定val值後的頭結點,先賦值為p。結點的遍歷從q結點開始,當q.val不等於val時,p的下乙個結點指向q,並且p q同時向後移動,直至q null,表示遍歷鍊錶結...