编程之美--3.4从无头单链表删除节点
2014-08-03 22:39
127 查看
思考
1 看似解答很无厘头,但是有几个面试小窍门:
1.1 是否注意有写(不是第一个,也不是最后一个),没事干嘛说这个?
1.2 任何链表改动题,都可以问下,是否可以改变原有的节点内容。默认都是不可以的,不过可以问问嘛。
代码
public static void DeleteRandomNode(Node node){
Node next = node.next;
if(next!=null){
node.next = next.next;
node.val = next.val;
}
}
扩展题
public static Node reversList(Node head){
if(head == null ){
return head;
}
Node p1 = head;
Node p2 = head.next;
if(p2 == null){
return head;
}
Node p3 = p2.next;
while(p3!=null){
p2.next = p1;
p1 = p2;
p2 = p3;
p3 = p3.next;
}
p2.next = p1;
head.next = null;
return p2;
}
1 看似解答很无厘头,但是有几个面试小窍门:
1.1 是否注意有写(不是第一个,也不是最后一个),没事干嘛说这个?
1.2 任何链表改动题,都可以问下,是否可以改变原有的节点内容。默认都是不可以的,不过可以问问嘛。
代码
public static void DeleteRandomNode(Node node){
Node next = node.next;
if(next!=null){
node.next = next.next;
node.val = next.val;
}
}
扩展题
public static Node reversList(Node head){
if(head == null ){
return head;
}
Node p1 = head;
Node p2 = head.next;
if(p2 == null){
return head;
}
Node p3 = p2.next;
while(p3!=null){
p2.next = p1;
p1 = p2;
p2 = p3;
p3 = p3.next;
}
p2.next = p1;
head.next = null;
return p2;
}
相关文章推荐
- [编程之美] PSet3.4 从无头单链表中删除节点
- 编程之美3.4 从无头单链表中删除节点
- 读书笔记之编程之美 - 3.4 从无头链表中删除节点
- 编程之美-3.4-从无头单链表中删除节点-单链表逆置
- 一个单向链表,只知道某个节点的指针p,但是p不是尾节点,请编程删除节点p.
- 从无头单链表中删除节点
- JavaScript的DOM编程--10--删除节点
- 编程实现一个单链表节点的删除
- 编程之美 - 无头链表删除节点
- 编程之美-从无头单链表中删除节点
- 编程之美:第三章 结构之法 3.4从无头单链表中删除节点
- 3.4 从无头单链表中删除节点
- 无头单链表删除一个节点
- 从无头单链表中删除某节点(编程之美3.4)
- 面试题2 编程实现单链表删除节点
- JavaScript DOM编程 学习笔记-删除节点
- 编程实现单链表和双链表删除节点
- 编程之美--从无头单链表中删除节点
- JavaScript DOM编程 学习笔记-删除节点
- 3.4 从无头单链表中删除节点