题目:求树中两个结点的最低公共祖先,此树不是二叉树,并且没有指向父节点的指针。树的结点定义private static class TreeNode { int val; List<TreeNode> children = new LinkedList<>(); public TreeNode() { } public TreeNode(int val) { this.val = val;
题目:0, 1, … , n-1 这 n 个数字排成一个圈圈,从数字 0 开始每次从圆圏里删除第 m 个数字。求出这个圈圈里剩下的最后一个数字。解题思路第一种:经典的解法, 用环形链表模拟圆圈。创建一个总共有 n 个结点的环形链表,然后每次在这个链表中删除第 m 个结点。代码实现public static int lastRemaining(int n, int m) { if (n < 1 || m <
题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字啊的顺序不变。为简单起见,标点符号和普通字母一样处理。举例说明例如输入字符串”I am a student. ”,则输出”student. a am I”。解题思路第一步翻转句子中所有的字符。比如翻转“I am a student. ”中所有的字符得到”.
题目一:输入一棵二叉树的根结点,求该树的深度。从根结点到叶子点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。二叉树的结点定义private static class BinaryTreeNode { int val; BinaryTreeNode left; BinaryTreeNode right; public BinaryTreeNode() { } public BinaryTreeNode(int val) { this.