剑指 Offer 36. 二叉搜索树与双向链表
整体思路中序遍历;
所以:
mid(root.left);
内容;
mid(root.right);
内容:
初始化pre != null
则让pre.right = cur;
cur.left = pre;
【由此,内容的双向形成】
最后在主函数:
head.left = pre;
pre.right = head;
剑指 Offer 38. 字符串的排列
因为答案会存在重复的情况,所以,采用HashSet来存储答案;
采用回溯;
函数返回值,当当前所得的String.length() == 目标长度,直接将其加入Set,直接 return;
for(int i = 0; i < arr.length; i++) {
if(visited[i]) {
continue;
}
visited[i] = true;
dfs(arr, s + arr[i], visited, ans);
visited[i] = false;//回溯
}
剑指 Offer 54. 二叉搜索树的第 k 大节点
利用二叉搜索树的性质,直接中序遍历;
剑指 Offer 55 - I. 二叉树的深度
正则:
return root == null ? 0 : Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
剑指 Offer 55 - II. 平衡二叉树
return Math.abs(dep(root.left) - dep(root.right)) < 2 && isBalanced(root.left) && isBalanced(root.right);
标签:pre,right,Offer,每日,一结,visited,root,left From: https://www.cnblogs.com/xtag/p/16788809.html