LintCode 第466题 链表节点计数
2017-12-01 13:47
363 查看
基本思路:
1.创建带头结点的单链表,头结点的数据域value为0
2.遍历链表,过滤掉头结点,不做计数
实现代码:
1.创建带头结点的单链表,头结点的数据域value为0
2.遍历链表,过滤掉头结点,不做计数
实现代码:
#include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; typedef struct LinkListNode { int value; LinkListNode * nextNode; }LinkListNode, *LinkList; LinkListNode * creatLinkList() { LinkListNode * headNode = (LinkListNode *)malloc(sizeof(LinkListNode)); headNode->value = 0; headNode->nextNode = (LinkListNode *)malloc(sizeof(LinkListNode)); LinkListNode * tempNode = headNode->nextNode; while (tempNode != NULL) { int value; cin >>value; tempNode->value = value; if (value == -1) { tempNode->nextNode = NULL; } else { tempNode->nextNode = (LinkListNode *)malloc(sizeof(LinkListNode)); } tempNode = tempNode->nextNode; } return headNode; } int countNodeNumber(LinkListNode * headNode) { int count = 0; LinkListNode * tempNode = headNode->nextNode; //过滤掉首节点 不计数 while (tempNode->value != -1) { count++; tempNode = tempNode->nextNode; } return count; } int main(int argc, const char * argv[]) { // insert code here... std::cout << "Hello, World!\n"; LinkListNode * headNode = creatLinkList(); int linkListNodeNumber = countNodeNumber(headNode); cout << linkListNodeNumber; return 0; }
相关文章推荐
- 【LintCode 入门】466. 链表节点计数
- Lintcode 入门-466. 链表节点计数
- LintCode 466.链表节点计数 C++
- Lintcode:链表节点计数
- [LintCode] 链表节点计数 - JS
- 链表节点计数-LintCode
- 466. 链表节点计数 (count-linked-list-nodes)(c++)----lintcode面试题之链表
- LintCode入门练习——466. 链表节点计数
- LintCode入门练习——466. 链表节点计数
- LintCode 删除链表中等于给定值val的所有节点
- 166. 链表倒数第n个节点(nth-to-last-node-in-list)(c++)----lintcode面试题之链表
- 451. 两两交换链表中的节点(swap-nodes-in-pairs)(c++)----lintcode面试题之链表
- lintcode-451-两两交换链表中的节点
- 372. 在O(1)时间复杂度删除链表节点 (delete-node-in-the-middle-of-singly-linked-list)(c++)----lintcode面试题之链表
- lintcode-166-链表倒数第n个节点
- LintCode-交换链表当中两个节点
- LintCode 两两交换链表中的节点
- 链表中节点的计数及链表的反转
- python_lintcode_372在O(1)时间复杂度删除链表节点_174删除链表中倒数第n个节点
- LintCode 在O(1)时间复杂度删除链表节点