Leetcode刷题-2021/4/15

leetcode #### 257. 二叉树的所有路径
此题涉及的点有StringBuffer(不会),对bfs的理解

 // public List<String> process(TreeNode root,TreeNode node,String str,List<String> res){
    //     if(root==null){
    //         return null;
    //     }
    //     //叶子节点,优先特殊拼接
    //     if(root.left==null && root.right==null){
    //         str+=""+root.val;
    //         res.add(str);
    //         return res;
    //     }
    //     str+=""+root.val+"->";   //拼接
    //     if(root.val==node.val) str=""+root.val+"->";  //递归回来要置空
    //     process(root.left,root,str,res);
    //     process(root.right,root,str,res);
    //     return res;

    // }

其实这样写已经是对bfs的不理解了,当我递归回来时还要额外传递辅助根节点来单独判断,这一步完全是没必要的。
因为回溯就是先左再右,递归遍历完会左节点后,对应你所传递的参数也会对应原来的参数就是1,而不要回溯回来时将字符串置空

 public static List<String> binaryTreePaths(TreeNode root,StringBuffer str,List<String> res) {
        if(root==null){
            return null;
        }
        str.append(root.val);
        if(root.left==null && root.right==null) {
            res.add(str.toString());
            return res;
        }
        binaryTreePaths(root.left,new StringBuffer(str).append("->"),res);   //遍历完左子树,str就是第一调用函数的值就是1,而不要再次额外判断
        binaryTreePaths(root.right,new StringBuffer(str).append("->"),res);
        return res;
    }

StringBuffer相关介绍

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今日学习情况: 早上做了3道leetcode。 10:00-11:30分别是15. 三数之和[https://le...
    巫月700阅读 984评论 0 0
  • IT 1. LeetCode力扣:旋转图像 Java编写2021-04-15(48. 旋转图像)[https://...
    幸福大黑鸭阅读 861评论 0 0
  • 目录 1 左神部分集锦 2 Leetcode前150题 3 牛客网剑指offer 4 JavaG 5 题目中的...
    小小千千阅读 5,059评论 0 0
  • to-do:看一下别人写的题解 https://github.com/981377660LMT/algorithm...
    winter_sweetie阅读 4,253评论 1 0
  • 算法思想贪心思想双指针排序快速选择堆排序桶排序荷兰国旗问题二分查找搜索BFSDFSBacktracking分治动态...
    第六象限阅读 10,246评论 0 0

友情链接更多精彩内容