LeedCode种有关链表List题目总结二
来源:互联网 发布:加工贸易方式数据 编辑:程序博客网 时间:2024/06/03 19:22
9.Remove Linked List Elements(给定一个值,删除该链表中所有该值的节点)
思路1:这道题很简单。我的第一反应是先考虑第一个节点的值是不是给定的value,如果是,head = head.next,直到找到第一个不为value的节点,之后再开始标记前驱节点和后面的节点,直接判断值是否为value,若是是则删除,不是下一个。但这个不太好的一点就得分成两部分来写,一部分是找到第一个不为value的节点,后面一部分是统一写删除操作。
思路2: 为了改善思路一中的缺陷,我们为了统一算法,可以在链表的头部加一个节点,这样是不是就完美的解决了呢。
10.Odd Even Linked List(将链表中第偶数个节点连接在所有奇数节点的后面)例子如下。
输入: 1->2->3->4->5->6->null
输出:1->3->5->2->4->6->null
思路1:先将一个指针遍历到最后一个节点上,定为尾指针。接着从头指针开始,依次将第偶数个指针处的节点链接到尾部,移动尾部指针。在这里注意的是总的指针个数为偶数还是奇数。用另一个指针标记是否遍历结束。
思路2:上面的办法显然不够巧妙直接。我们可以先把所有第奇数个节点链接在一起,所有第偶数个节点链接在一起,最后将偶数的头结点链接在奇数的尾节点之后即可。代码如下:
ListNode first = head; ListNode secode = head.next; ListNode temp = secode; while(secode != null && secode.next != null){ first.next = secode.next; first = first.next; secode.next = first.next; secode = secode.next; } first.next = temp; return head;
0 0
- LeedCode种有关链表List题目总结二
- LeedCode种有关链表List题目总结一
- leedcode做题总结,题目Reorder List 13/11/12
- leedcode做题总结,题目Linked List Cycle I/II 13/10/28-30
- leedcode做题总结,题目Flatten Binary Tree to Linked List 2012/10/14
- leedcode做题总结, 题目Surrounded Regions130
- leedcode做题总结, 题目Median 80
- Leedcode题目总结-TREE-求深度问题
- leedcode做题总结,题目Two Sum2011-03-13
- leedcode做题总结,题目Same Tree 2012/09/03
- leedcode做题总结,题目Rotate Image 2012/03/17
- leedcode做题总结,题目Symmetric Tree 2012/09/23
- leedcode做题总结,题目Valid Palindrome 2013/01/12
- leedcode做题总结,题目Gas Station-------- 2013/09/28
- leedcode做题总结,题目Reverse Integer----- 2011/12/25
- leedcode做题总结,题目Remove Element 2012/02/16
- leedcode做题总结, 题目Permutations I/II46/47
- leedcode做题总结, 题目Longest Palindromic Substring 5
- 输出十个数中的最大值(循环中套判断)
- JS给数组增加元素
- 简明Hadoop配置(2)——Ubuntu下使用eclipse搭建开发环境
- 安装Ubuntu时的硬盘分区方案
- Chip Factory(HDU 5536 纯暴力)
- LeedCode种有关链表List题目总结二
- 让maven跳过测试
- 一个程序小白的大胆尝试 (鸡汤)
- C# NumericUpDown控件
- FreeRTOS操作系统
- 从留言板开始做网站(五)——表单提交(数据插入)
- mysql unrecognized service问题解决
- Poj 3449
- java相关的下载链接,自己收藏的