zoukankan      html  css  js  c++  java
  • 203--Remove LinkedList Elements

    package LinedList;

    public class RemoveLinkedListElements {
    //解法一:循环
    public ListNode removeElements(ListNode head, int val) {
    while (head!=null&&head.val==val){
    ListNode temp=head;
    head=temp.next;
    temp.next=null;
    }
    if (head==null)
    return null;
    ListNode previous=head;
    while (previous.next!=null){
    if (previous.next.val==val){
    ListNode temp=previous.next;
    previous.next=temp.next;
    temp.next=null;
    }
    else{
    previous=previous.next;
    }
    }
    return head;
    }
    //解法二,使用虚拟头节点的循环。
    public ListNode removeElements2(ListNode head, int val) {
    ListNode dummyHead=new ListNode(-1);
    dummyHead.next=head;
    ListNode previous=dummyHead;
    while (previous.next!=null){
    if (previous.next.val==val){
    ListNode temp=previous.next;
    previous.next=temp.next;
    temp.next=null;
    } else {
    previous=previous.next;
    }
    }
    return dummyHead.next;
    }
    //解法三:使用递归。
    public ListNode removeElements3(ListNode head, int val) {
    if(head==null)
    return null;
    head.next=removeElements(head.next,val);
    return head.val==val?head.next:head;
    }
    }
  • 相关阅读:
    Emacs教程
    华为上机测试 2015
    奇偶排序
    C语言中的EOF和回车不一样
    jquery 使用方法
    1116
    1115
    1109
    Oracle14~23
    get与post的区别
  • 原文地址:https://www.cnblogs.com/zhangyuhao/p/11356810.html
Copyright © 2011-2022 走看看