您的位置:首页 > 其它

访问单个节点的删除

2015-07-09 09:47 375 查看

题目描述

实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。

给定带删除的节点,请执行删除操作,若该节点为空节点,返回false,否则返回true

Thinking

实现链表的节点删除我们只需知道该节点的前节点然后修改该节点next的指向就可以了。然而根据题目要求我们并无法得知该节点的前节点。所以换一种思路我们只需将val值错位就可以了 只需将该节点的值换成下一结点的值然后删除下一结点、

Code

[code]import java.util.*;

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Remove {
    public boolean removeNode(ListNode pNode) {
        // write code here
        if(pNode==null||pNode.next==null) return false;

        ListNode p=pNode;
       // while(p.next!=null){
       //     p.val=p.next.val;
       //     p=p.next;
       // }
       // p=null;

        ListNode q=pNode.next;
        p.val=q.val;

        p.next=q.next;

        return true;

    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: