赞
踩
package JavaLearning; //删除链表中等于给定值 val 的所有节点 /* 提前定义好了 package JavaLearning; //链表的定义 public class ListNode { // 结点的值 int val; // 下一个结点 ListNode next; // 节点的构造函数(无参) public ListNode() { } // 节点的构造函数(有一个参数) public ListNode(int val) { this.val = val; } // 节点的构造函数(有两个参数) public ListNode(int val, ListNode next) { //val节点的值,next下一个链表的值 this.val = val; this.next = next; } // 添加新的结点 public void add(int newval) { ListNode newNode = new ListNode(newval); if(this.next == null) this.next = newNode; else this.next.add(newval); } // 打印链表 public void print() { System.out.print(this.val); if(this.next != null) { System.out.print("-->"); this.next.print(); } } } */ class Solution_203 { public ListNode removeElements(ListNode head, int val) { while (head != null && head.val == val) { head = head.next; } // 已经为null,提前退出 if (head == null) { return head; } // 已确定当前head.val != val ListNode pre = head; ListNode cur = head.next; while (cur != null) { if (cur.val == val) { pre.next = cur.next; } else { pre = cur; } cur = cur.next; } return head; } } public class removeElements{ public static void main(String[] args) { Solution_203 remove = new Solution_203(); ListNode listNode = new ListNode(-1); listNode.add(1); listNode.add(2); listNode.add(6); listNode.add(3); listNode.add(6); listNode.add(4); listNode.print(); System.out.println(); remove.removeElements(listNode,6); listNode.print(); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。