您的位置:首页 > 编程语言

编程之美--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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息