第109题:
给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。来源:力扣(LeetCode)
1、之前一道题是将升序数组转换位高度平衡的二叉搜索树;
那里面是将升序数组的中位数作为根节点,然后分别在前后两部分数组内寻找新的中位数来作为左子树和右子树的根节点;
依次递归下去,最后就得出了高度平衡的二叉树。
而将单链表转化为平衡二叉搜索树,也可以来寻找升序元素中的中位数作为根节点,然后在前后两部分升序链表内寻找新的中位数作为左右节点。
最终得到二叉树。
第326题:
给定一个整数,写一个函数来判断它是否是 3 的幂次方。(来自LeetCode)
1、判断n%3是否等于0;等于0说明n可以除3,然后每次都将 n 除一个3;
最后判断n是否等于1,输出结果。
第344题:
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。来源:力扣(LeetCode)
1、双指针分别指向下标 0 处和下标 s.length-1 处;
当 l <= r 的时候,每次都将指向的数交换。
第345题:
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。(来自LeetCode)
1、利用集合list存储元音字母;
双指针指向两端,将两个指针向内移动直到都指向元音字母;
交换两个元音字母,接着向内移动,直到双指针相遇。