LeetCode-每周刷题记录(2)


Linked List

237  Delete Node in a Linked List

题目:Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.

Given linked list -- head = [4,5,1,9]

删除给定节点。

思路:直接给被删除的节点,可以直接将该指针的值指向下一个节点。


19 Remove Nth Node From End of List

题目:Given a linked list, remove the n-th node from the end of list and return its head.

对于给定的链表,删除第n个节点。

思路:采用双指针,让一个先走n步,然后两个一起前进至链表末端,则另一个停在第n个节点,然后执行相应的删除操作。


206 Reverse Linked List

题目:Reverse a singly linked list.

将链表反转。

思路:新建一个链表,并将传入链表的值不断地往头结点插入。


21 Merge Two Sorted Lists

题目:Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

将两个有序链表合并

思路:从头往后,将两链表的值比较并存入新的链表指针中,只剩一个链表时可以直接将链表接在新链表后面。


234 Palindrome Linked List

题目:Given a singly linked list, determine if it is a palindrome.

根据已给的链表,判断其是否为回文链表

思路:进行对称判断相应指针的值是否一样,对于链表老说可以采用双指针,一快一慢,一个走到中间时,将后面部分的链表内容翻转传回,并跟链表前部分进行对比。


141 Linked List Cycle

题目:Given a linked list, determine if it has a cycle in it.

To represent a cycle in the given linked list, we use an integer pos which represents the position (0-indexed) in the linked list where tail connects to. If pos is -1, then there is no cycle in the linked list.

根据已给的链表,判断其是否为循环链表。

解法:采用双指针,一个快一个慢,若两个指针指向的地址一样,则为循环链表。



Trees

104 Maximum Depth of Binary Tree

题目:Given a binary tree, find its maximum depth.

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

Note:A leaf is a node with no children.

根据已给的树,返回该树的最大深度

解法:深度优先方法,采用递归求解;广度优先方法,采用队列方法。


98 Validate Binary Search Tree

题目:Given a binary tree, determine if it is a valid binary search tree (BST).

Assume a BST is defined as follows:

The left subtree of a node contains only nodes with keys less than the node's key.

The right subtree of a node contains only nodes with keys greater than the node's key.

Both the left and right subtrees must also be binary search trees.

给一棵二叉查找树,判断其对否有效。

解法:判断左子树是否比父节点小,右子树是否比父节点大。采用递归求解,针对每一节点传入该节点的最大最小限制值。


101 Symmetric Tree

题目:Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

判断一棵树是否镜像。

思路:自己没解出来,网上大神的做法是使用queue,缓存每一层的节点,根据镜像原则在缓存的时候左右子树的缓存顺序是不一样的。左子树是left->left,left->right;右子树是right->right,right->left的顺序,这样就保证左右两个子树缓存的节点是镜像的,便于后续的值判断。


102 Binary Tree Level Order Traversal

题目:Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

按层输出数左右元素。

思路:输出元素的缓存使用vector<vector<int>>,对于每一层元素不同导致不能直接事先定义矩阵的大小。可以每一层定一个变量vector<int>,每一层元素处理完就push_back()到输出缓存变量中。

对于元素的提取,需要使用到queue,每处理一层节点。就把下一层节点指针缓存到queue中,直至没有节点。


108 Convert Sorted Array to Binary Search Tree

题目:Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

将有序向量转化成一个二分查找树。

思路:使用二分查找的方法,采用递归形式折半处理为一个树,为加快整个运行效率,可以使用iter,省去传递数组时的构造时间以及空间。




Sorting and Searching

88 Merge Sorted Array

题目:Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

Note:

The number of elements initialized in nums1 and nums2 are m and n respectively.

You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2.

将两个有序向量合并。

思路:对于有序向量合并问题,应从后往前处理,这样就可以保证每次处理的都是最大值,比较方便一个loop完成整个向量的合并问题。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容