关闭

访问单个节点的删除

标签: 链表
514人阅读 评论(0) 收藏 举报
分类:

题目描述

实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。
给定带删除的节点,请执行删除操作,若该节点为空节点,返回false,否则返回true

Thinking

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

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;

    }
}
0
0
查看评论

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

直接free(p),这样行不通,因为我们不能访问其他结点; 如果我们只能访问该结点,可以尝试将该结点的后继结点的数据复制到当前结点,然后删除后继结点 public static boolean deleteNode (LinkListNode n) { if( null == n || nul...
  • michellechouu
  • michellechouu
  • 2015-07-08 17:02
  • 777

牛客网-访问单个节点的删除

实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。 给定带删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true /* struct ListNode { int val; struct ListNode *next; L...
  • msdnwolaile
  • msdnwolaile
  • 2016-08-31 07:25
  • 226

访问单个节点的删除练习

实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。 给定带删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true这个其实是比较水的把后一个节点的内容覆盖当前节点,删除后一个节点。本质上并没有删除此节点.。工程上存在很多的问题,纯粹为了出题而出题。没啥意思。/*...
  • njudongchen
  • njudongchen
  • 2017-02-21 16:38
  • 119

访问单个节点的删除(Java)

题目描述 实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。 给定带删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true class ListNode { int val; ListNode next = null; ...
  • feige1990
  • feige1990
  • 2015-08-24 10:45
  • 489

牛客网 | 访问单个节点的删除

题目描述 实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。 给定带删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true 注意:这道题目一开始没弄明白,脑袋里根深蒂固的是单链表删除节点的固有方式,实际上可以把当前节点的值赋值成下一...
  • weizaishouex2010
  • weizaishouex2010
  • 2015-12-24 23:49
  • 542

链表10:访问单个节点的删除

链表10:访问单个节点的删除
  • qq_27703417
  • qq_27703417
  • 2017-04-29 13:23
  • 118

链表单个节点的删除

实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。 给定带删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true bool  remove(ListNode* pnode) {    if(pnode...
  • u014800094
  • u014800094
  • 2017-01-01 10:30
  • 97

【程序员面试金典】访问单个节点的删除

【程序员面试金典】访问单个节点的删除题目实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。 给定带删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true分析复制下一个结点的内容到当前结点,再删除下一个结点,如果该节点为尾结点,则无解。解答struct List...
  • sps900608
  • sps900608
  • 2016-10-10 13:41
  • 397

《程序员面试金典》访问单个节点的删除

【 声明:版权所有,转载请标明出处,请勿用于商业用途。  联系信箱:libin493073668@sina.com】 题目链接:http://www.nowcoder.com/practice/75e0235da04141d4823eb74018e9e0bc?rp=1...
  • libin1105
  • libin1105
  • 2015-09-16 15:46
  • 675

[牛客]访问单个节点的删除练习题

实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。 给定带删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true   import java.util.*; /* public class ListNode { int val; L...
  • lxg2015
  • lxg2015
  • 2017-04-21 11:36
  • 401
    个人资料
    • 访问:85530次
    • 积分:1834
    • 等级:
    • 排名:千里之外
    • 原创:63篇
    • 转载:48篇
    • 译文:0篇
    • 评论:13条
    最新评论