每日一题之LeetCode237删除链表中的节点876链表的中间节点

237
class ListNode:
def init(self, x):
self.val = x
self.next = None

class Solution:
def deleteNode(self, node):
"""
:type node: ListNode
:rtype: void Do not return anything, modify node in-place instead.
"""

    node.val=node.next.val
    node.next=node.next.next

head1 = ListNode(4)
n1 = ListNode(5)
n2 = ListNode(1)
n3 = ListNode(9)
head1.next = n1
n1.next = n2
n2.next = n3
t=Solution()
t.deleteNode(n1)
print(head1.next.val)

876

-- coding: utf-8 --

"""
Created on Thu Nov 22 21:45:28 2018

@author: Administrator
"""

class ListNode:
def init(self, x):
self.val = x
self.next = None

class Solution(object):
def middleNode(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
flag=True
i=0
t=head
while flag:
if t.next!=None:
i=i+1
t=t.next
else:
flag=False
i=i+1
j=int(i/2)+1

while k:

head=head.next

n=n+1

if n=j:

k=False

    for m in range(0,j-1):

        head=head.next
    return head

head1 = ListNode(1)
n1 = ListNode(2)
n2 = ListNode(3)
n3 = ListNode(4)
n4 = ListNode(5)
head1.next = n1
n1.next = n2
n2.next = n3
n3.next = n4
t=Solution()
print(t.middleNode(head1).val)
#print(head1.next.val)

原文地址:http://blog.51cto.com/13930723/2320836

时间: 2024-10-08 06:49:43

每日一题之LeetCode237删除链表中的节点876链表的中间节点的相关文章

将链表中的所有元素为奇数的节点移到元素为偶数节点的前面,并保证奇数之间顺序不变,偶数之间顺序不变。

2.将链表中的所有元素为奇数的节点移到元素为偶数节点的前面,并保证奇数之间顺序不变,偶数之间顺序不变. 示例: 交换前链表的顺序             交换后链表的顺序 4→5→3→1→2   ==>  5→3→1→4→2 1 ==> 1                   (链表仅含一个元素) 2→1 ==>1→2 ==>         (链表为空) C/C++: 链表节点定义为: struct node { struct node *next; int value; };

删除数组中的元素(链表)

[问题描述] 给定N个整数,将这些整数中与M相等的删除 假定给出的整数序列为:1,3,3,0,-3,5,6,8,3,10,22,-1,3,5,11,20,100,3,9,3 应该将其放在一个链表中,链表长度为20 要删除的数是3,删除以后,链表中只剩14个元素:1 0 -3 5 6 8 10 22 -1 5 11 20 100 9 [输入] 包含3行:第一行是一个整数n(1 <= n <= 200000),代表数组中元素的个数.第二行包含n个整数,代表数组中的n个元素.每个整数之间用空格分隔:

每日一题11:替换字符串中的空格

用指定的字符或字符串替换某个字符串中出现的所有空格,当用字符替换字符是,自然是很简单的,但是当使用字符串替换字符时,如果还是从前往后遍历,遇到指定字符就将其后所有字符往后移出足够空间的话,当字符串中的空格很多时,反复的移动字符会带来性能上的损失.但是如果是从后往前遍历呢?可以先遍历一次原字符串,得到字符串中空格的个数,然后就可以计算出实际需要的空间,再假设原字符串所在缓冲区有足够空间(否则新建一个缓冲区从前往后遍历就行了,这里说的是在不新建缓冲区的情况下做这件事),那么就可以计算出每个字符最后的

每日一题16:在一个数组中实现两个栈

在一个数组中实现两个栈,当数组未填满是任一个栈不能溢出.解法是将一个栈从头开始往后插入,而另一个从后往前插入,如果插入一个元素后,两个栈的top指针未相遇,则表示数组未满,栈没有溢出. #include "stdafx.h" #include <iostream> using namespace std; struct special_stack { int capcity; int ltop,rtop; int* vals; }; special_stack* creat

每日一题--4--在两个文件中取交集,显示指定的内容

把这个两个文件都存在的用户的密码输出出来 [[email protected] student]# head file1 file2 ==> file1 <== oldboy 1234 alex 4567 lidao 9999 ==> file2 <== 001 lidao 002 alex 003 oldboy 004 oldgirl 提示:需要用到如何判断这两个文件不是一个文件. 解题思路 awk 'FNR==NR{h[$1]=$2}FNR!=NR{print h[$2]}'

在链表中找出倒数第K个节点

(1)遍历两遍,第一次计算出链表长度n,第二次找到(n-k)个节点,也就是倒数第K个节点. (2)遍历一遍,定义两个指针,一个指针fast,一个指针slow,都指向头结点,fast指针先向前走K,然后再同时遍历,当fast遍历到最后一个节点时,slow所指向的节点就是倒数第K个节点. #include<stdio.h> #include<stdlib.h> #include<assert.h>   struct Listnode {     int _value;   

【leetcode 简单】 第六十九题 删除链表中的节点

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9 示例 1: 输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 示例 2: 输入: head = [4,5,1,9], node = 1 输

LeetCode237 删除链表中的节点

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9 示例 1: 输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 示例 2: 输入: head = [4,5,1,9], node = 1 输

LintCode Python 简单级题目 452.删除链表中的元素

原题描述: 删除链表中等于给定值val的所有节点. 您在真实的面试中是否遇到过这个题? Yes 样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5. 标签 链表 题目分析: 删除链表中等于给定值val的所有节点. 遍历链表,找到其中next.val等于val的节点,删除. 注意的地方就是可能链表中的所有元素val都等于val,循环的开始需要从表头开始删除,需要新增一个头节点.