前言
java字符串不太熟悉怎么用+递归出口没想好+太笨+字典序不理解
补充知识:
例题:
AC:
String ans = "~";
public String smallestFromLeaf(TreeNode root) {
rootSum(root, new StringBuilder());
return ans;
}
public void rootSum(TreeNode root, StringBuilder sb){
int ret=0;
if(root==null){
return;
}
sb.append((char)('a' + root.val));
if(root.left==null&&root.right==null){
sb.reverse();
String s=sb.toString();
sb.reverse();
if (s.compareTo(ans) < 0)
ans = s;
}
rootSum(root.left,sb);
rootSum(root.right,sb);
sb.deleteCharAt(sb.length() - 1);
}
思想:
1 首先学习到的最重要的知识
下面这句话的递归流程想通了(建议你可以画个递归栈摸你想一下)
总结来说就是只有一个节点的左右子树都递归完后 伴随着这句删除语句
此节点也就出栈了 可以模拟为删除了哪个节点 哪个节点就出栈了
2 String、StringBuffer和StringBuilder的区别
https://blog.csdn.net/csxypr/article/details/92378336
3 理解一下