
NK
calangan
想要的越多越得不到想要的
展开
-
【NK四】 在二叉树中找到两个节点的最近公共祖先
在二叉树中找到两个节点的最近公共祖先根据公共祖先的定义,若root是o1、o2的最近公共祖先,则只可能为以下三种情况之一p 和 q 分别在 root 的左右子树中p = root 且 q 在 root 的 左或右子树中q = root 且 p 在 root 的 左或右子树中import java.util.*;public class Solution { public int lowestCommonAncestor (TreeNode root, int o1, int o2)原创 2021-10-09 17:24:38 · 126 阅读 · 0 评论 -
【NK三】 跳台阶
跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。输入: 2返回值: 2说明: 青蛙要跳上两级台阶有两种跳法,分别是:先跳一级,再跳一级或者直接跳两级。因此答案为2以下整理为参考NK大神解析。1、递归的写法当n等于1的时候,只需要跳一次即可,只有一种跳法,记f(1)=1当n等于2的时候,可以先跳一级再跳一级,或者直接跳二级,共有2种跳法,记f(2)=2当n等于3的时候,他可以从一级台阶上跳两步上来,也可以原创 2021-10-09 15:20:37 · 95 阅读 · 0 评论 -
【NK二】 用两个栈实现队列
用两个栈实现队列用两个栈来实现一个队列,完成 n 次在队列尾部插入整数(push)和在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。栈是先进后出的,队列是先进先出的1.使用两个栈stackPop和stackPush。2.添加元素的时候直接把要添加的值压入到stackPush栈中。3.删除元素的时候如果stackPop中有元素我们就直接删除,如果没有元素,需要把stackPush中的元素全部出栈放到stackPop中,然后再删除stac原创 2021-10-08 16:00:38 · 121 阅读 · 0 评论 -
【NK一】 判断链表中是否有环
判断链表中是否有环方法一使用一个集合,遍历链表,检查每一个链表的节点是否已经遍历过,即存在环,如果不存在环则可以遍历到最后一个节点得next(null)。这种方法的时间复杂度为O(n)。方法二在处理链表问题中快慢指针可以解决很多问题。也可以用于解决本题。如果有环,则快慢指针必会相遇。这种方法的时间复杂度为O(1)。public boolean hasCycle(ListNode head) { ListNode fast = head; ListNode sl原创 2021-10-08 14:30:45 · 152 阅读 · 1 评论