1. 程式人生 > >leetcode Remove Linked List Elements

leetcode Remove Linked List Elements

Remove Linked List Elements 題目:https://leetcode.com/problems/remove-linked-list-elements/

刪除連結串列中的指定元素,

解題思路:新增一個新的節點,指向頭節點,建立新的節點指向新的節點

public static void main(String[] args) {
		ListNode list1=new ListNode(1);
		ListNode list2=new ListNode(2);
		ListNode list3=new ListNode(3);
		ListNode list4=new ListNode(6);
		ListNode list5=new ListNode(4);
		ListNode list6=new ListNode(5);
		ListNode list7=new ListNode(6);
		list1.next=list2;
		list2.next=list3;
		list3.next=list4;
		list4.next=list5;
		list5.next=list6;
		list6.next=list7;
		ListNode listNode = removeElements(list1, 6);
		while(listNode!=null){
			System.out.print(listNode.val+"  ");
			listNode=listNode.next;
		}
	}

	/**
	 * 在連結串列的前面新增一個節點,在建立一個指標指向頭。
	 * @param head
	 * @param val
	 * @return
	 */
	public static  ListNode removeElements(ListNode head, int val) {

		ListNode root=new ListNode(1);
		root.next=head;
		ListNode root2=root;
		while(root2.next!=null){
			if(root2.next.val==val){
				root2.next=root2.next.next;
			}else{
				root2=root2.next;
			}
		}
		return root.next;
	}