-琥珀-的专栏

格言:抱怨没有用,一切靠自己!!

访问单个节点的删除

题目描述

实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。
给定带删除的节点,请执行删除操作,若该节点为空节点,返回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;

    }
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010032372/article/details/46812681
文章标签: 链表
个人分类: 链表
上一篇Min Stack(返回栈中最小数)
下一篇链表分割
想对作者说点什么? 我来说一句

asp.net操作xml增、删、查、改

2010年11月19日 13KB 下载

没有更多推荐了,返回首页

关闭
关闭