关闭

访问单个节点的删除

标签: 链表
401人阅读 评论(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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:66609次
    • 积分:1640
    • 等级:
    • 排名:千里之外
    • 原创:63篇
    • 转载:48篇
    • 译文:0篇
    • 评论:11条
    最新评论