- 算法
栈 - 核心思想
依次入栈,碰到相等的数就不用入栈了。然后依次出栈,利用一个temp结点保存上一个出栈的结点,与当前出栈结点建立连接。
突然想起来用队列也可以。 - 代码
class Solution {
public ListNode removeElements(ListNode head, int val) {
if(head == null) return head;
Stack<ListNode> st = new Stack<ListNode>();
ListNode temp = null;
while(head != null){
if(head.val != val){
st.push(head);
}
head = head.next;
}
while(!st.isEmpty()){
head = st.pop();
// System.out.println(head.val);
head.next = temp;
temp = head;
}
return head;
}
}