移除链表元素(临时)

移除链表元素

题目描述 


测试结果


具体代码


package test_26;
 class ListNode {     
	int val;
    ListNode next;
    ListNode(int x) { val = x; }
}
class Solutions {
   public ListNode removeElements(ListNode head, int val) {
       if(head==null) return null;
       ListNode newHead=new ListNode(val+1);//假设一个假头,实际上结点随便什么值都可以
       newHead.next=head;//返回值进行保留
       ListNode p=newHead;//结点p为新头
       ListNode q=head;//q为head,核心移动步骤
       while(q!=null) {
        //当不是该值的时候向后遍历
	       while(q!=null&&q.val!=val) {
	    	   p=p.next;
	    	   q=q.next;
	       }
        //如果q==null说明没有该值的结点了
	       if(q==null) break;
        //q!=null那么核心代码p.next=q.next;
	       q=q.next;
	       p.next=q;
       }
       return newHead.next;
   }
}

发布了104 篇原创文章 · 获赞 165 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43914278/article/details/104216944