【LintCode-452】删除链表中的元素(Java实现)
2017-11-04 00:12
609 查看
第一次代码记录:
public ListNode removeElements(ListNode head, int val) { ListNode resultNode=null; if(head==null){ return null; } while(head.val==val){ head=head.next; if(head==null){ break; } } resultNode=head; while(head!=null){ if(head.next==null){ break; } if(head.next.val==val){ head.next=head.next.next; }else{ head=head.next; } } return resultNode; }
第二次代码记录:
public ListNode removeElements(ListNode head, int val) { if (head == null) { return null; } ListNode resultListNode = head; while (head.next != null) { if (head.next.val == val) { head.next = head.next.next; } else { head = head.next; if (head == null) { break; } } } if (resultListNode.val == val) { return resultListNode.next; } return resultListNode; }
个人解题思路:
这题删除链条元素主要存在的问题是如何处理 链表头的val值与参数val值相等时的情况
第一次代码记录,处理的方式是:通过循环遍历链表,当val值不相等时 停止,以此来保证第二个循环遍历时,不需要考虑链表头。
第二次代码记录,处理的方式是:先不考虑链表头,在遍历循环删除掉符合条件的节点后,在最后一步进行判断,如果相同,就返回其next(resultListNode.next);
如果您有更好的解法,欢迎您在留言区补充,感谢!!
相关文章推荐
- LintCode入门练习——452. 删除链表中的元素
- lintcode-452-删除链表中的元素
- LintCode之452 删除链表中的元素
- LintCode_452_删除链表中的元素
- 452. 删除链表中的元素--java
- 【LintCode 入门】452. 删除链表中的元素
- LintCode_452_删除链表中的元素
- Java实现-删除排序链表中的重复元素2
- [Lintcode] #452 删除链表中的元素
- Java实现链表去重(重复元素全部删除)
- Java实现-删除排序链表的重复元素1
- LintCode入门练习——452. 删除链表中的元素
- LintCode 452 删除链表中的元素
- 【LeetCode-面试算法经典-Java实现】【082-Remove Duplicates from Sorted List II(排序链表中删除重复元素II)】
- Lintcode 入门-452. 删除链表中的元素
- 数据结构Java实现03----单向链表的插入和删除
- 【LeetCode-面试算法经典-Java实现】【026-Remove Duplicates from Sorted Array(删除排序数组中的重复元素)】
- 【LeetCode-面试算法经典-Java实现】【203-Remove Linked List Elements(删除单链表中的元素)】
- C语言单向动态链表程序,实现链表的建立,合并,重新排序,链表元素的插入与删除,以及根据元素成员的值进行元素删除。
- 【LeetCode-面试算法经典-Java实现】【027-Remove Element(删除数组中指定的元素)】