zoukankan      html  css  js  c++  java
  • 算法总结之 在单链表中删除指定值的节点

    给定一个链表的头节点head和一个整数num,请实现函数将值num的节点全部删除

    方法一 利用栈或者其他容器收集的方法  时间复杂度O(N)  额外空间复杂度O(N)

    将值不等于num的节点收集起来!!!哈哈哈哈哈哈哈哈哈哈啊哈哈哈哈啊哈哈   最后将占地的节点作为新的头节点返回

    package TT;
    
    import java.util.Stack;
    
    public class Test109 {
    
    	public class Node{
    		public int value;
    		public Node next;
    		public Node(int data){
    			this.value=data;
    		}
    	}
    	
    	public Node removeValue1(Node head, int num){
    		 Stack<Node> stack = new Stack<Node>();
    		 while(head!=null){
    			 if(head.value !=num){
    				 stack.push(head);
    			 }
    			 head=head.next;
    		 }
    		 
    		while(!stack.isEmpty()){
    			stack.peek().next=head;
    			head=stack.pop();
    			
    		}
           return head;		
    	}
    }
    

      

    方法二 直接调整

    首先从链表头开始,找到第一个值不等于num的节点,作为新的头节点,这个节点是肯定不用删除的,记为newHead。 

       继续往后遍历  假设当前节点为cur 如果cur节点值等于num,就将cur节点删除,如果不等于num 就令pre=cur 更新最近一个值不等于num的节点

    package TT;
    
    
    public class Test110 {
      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;
      }
      
      
      
    	
    }
    

      

      

  • 相关阅读:
    OLAP ODS项目的总结 平台选型,架构确定
    ORACLE ORA12520
    ORACLE管道函数
    ORACLE RAC JDBC 配置
    ORACLE RAC OCFS连接产生的错误
    ORACLE 启动和关闭详解
    OLAP ODS项目的总结 起步阶段
    ORACLE RAC 配置更改IP
    ORACLE RAC OCR cann't Access
    ORACLE RAC Debug 之路 CRS0184错误与CRS初始化
  • 原文地址:https://www.cnblogs.com/toov5/p/7504816.html
Copyright © 2011-2022 走看看