首页 > 其他 > 详细

Dummy Head在链表中的应用

时间:2017-04-16 12:36:03      阅读:3572      评论:0      收藏:0      [点我收藏+]

Leetcode 203. Remove Linked List Elements

Remove all elements from a linked list of integers that have value val.

Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5

 

public ListNode removeElements(ListNode head,int val){

   ListNode dummyHead=new ListNode(-1);

   dummyHead.next=head;

   ListNode curr=head,prev=dummyHead;

   while(curr!=null){

     if(curr.val=val) prev.next=curr.next;

     else prev=prev.next;

     curr=curr.next;

     }

     return dummyHead.next;

 

}

 

Dummy Head是一种非常有用的技巧,容易写出bug free的code。本题中如果不用dummy head而直接返回head的话,就会存在要考虑head是否为空的问题,在while循环中会出现问题。有了dummyhead, 所有的节点都拥有了前置节点,也就不用再考虑头结点为空的情况了,这一点在删除节点是非常有用。返回时返回dummyhead.next,所以也不用存储头结点

Dummy Head在链表中的应用

原文:http://www.cnblogs.com/shixueyuan/p/6718153.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!