leetcode 203 Remove Linked list Elements
2015-10-25 13:00
225 查看
题目要求:给定一个值val,去掉linked list中所有包含该值的节点。
tags:linked list,recursive
非递归思路:
1.首先设置一个伪头prehead,能像处理非头节点一样处理头结点,
2.每次都对下个节点的值进行判断,如果与给定值相同,则将当前节点的next指向下下个节点。
递归思路:
1.经过removeElements函数之后返回的节点,可以由当前节点和下个节点作为输入返回的节点来组成;
2.对当前节点的判断需要涉及到null、值等于val、值不等于val这三种情况。
tags:linked list,recursive
非递归思路:
1.首先设置一个伪头prehead,能像处理非头节点一样处理头结点,
2.每次都对下个节点的值进行判断,如果与给定值相同,则将当前节点的next指向下下个节点。
public ListNode removeElements(ListNode head, int val) { ListNode preHead = new ListNode(0); preHead.next = head; head=preHead; while(head.next!=null){ if(head.next.val==val){ head.next = head.next.next; }else{ head = head.next; } } return preHead.next; }
递归思路:
1.经过removeElements函数之后返回的节点,可以由当前节点和下个节点作为输入返回的节点来组成;
2.对当前节点的判断需要涉及到null、值等于val、值不等于val这三种情况。
public ListNode removeElements2(ListNode head, int val) { if(head==null){ return null; }else if(head.val==val){ return removeElements(head.next, val); }else{ ListNode temp = removeElements(head.next, val); head.next = temp; return head; } }
相关文章推荐
- webService
- Codeforces Round #312 (Div. 2) B. Amr and The Large Array
- JSdome节点常用部分和事件内容
- Sublime Text
- python实现发送邮件
- python socket 选项
- A/B(扩展欧几里德)
- BZOJ 3670 [Noi2014]动物园 (KMP next数组应用)
- (四)、一步一步学GTK+之多窗口
- PHP文件加密解密
- S3C6410板子移植 Android2.2
- LightOJ 1258 - Making Huge Palindromes【kmp】
- JAVA学习路线图
- (三)、一步一步学GTK+之布局
- (二)、一步一步学GTK+之窗口
- [思考] hdu 4811 Ball
- layoutSubviews在以下情况下会被调用:
- Opencv videowriter保存的视频只有几K
- java数组的行数和列数
- (一)、一步一步学GTK+之开篇