【回溯】二叉树的所有路径

求解代码

java 复制代码
public List<String> binaryTreePaths(TreeNode root) {
            List<String> ans = new ArrayList<>();
            if (root == null) {
                return ans;
            }
            StringBuilder sb = new StringBuilder();
            backtrack(root, sb, ans);
            return ans;
        }

        private void backtrack(TreeNode root, StringBuilder sb, List<String> ans) {
            if (root == null) {
                return;
            }
            // 记录当前拼接前的长度,用于回溯撤销
            int len = sb.length();

            sb.append(root.val);
            // 到达叶子节点,添加完整路径
            if (root.left == null && root.right == null) {
                ans.add(sb.toString());
            } else {
                sb.append("->");
                backtrack(root.left, sb, ans);
                backtrack(root.right, sb, ans);
            }
            // 回溯撤销,恢复StringBuilder到拼接前的状态
            sb.setLength(len);
        }
相关推荐
名字还没想好☜13 小时前
Go 并发实战:用 channel 实现 worker pool
java·数据库·后端·golang·go
人道领域13 小时前
【LeetCode刷题日记】贪心算法理论与实战:455.分发饼干最优解
java·开发语言·数据结构·算法·leetcode·贪心算法
_abab13 小时前
Java面试宝典:从基础到架构2
java·面试·架构
亘元有量-流量变现13 小时前
内外联动精细化运营:解锁安卓APP推广降本增效新路径
android·用户运营·aso优化·亘元有量·方糖试玩
nVisual13 小时前
nVisual:AI驱动的智能排障,平均响应时间缩短40%
android·人工智能·缓存
万亿少女的梦16813 小时前
基于Spring Boot与Vue的繁星技术论坛系统设计与实现
java·spring boot·mysql·vue·系统设计
阿pin13 小时前
Android随笔-神经系统Handler
android·java·开发语言·handler
ch.ju13 小时前
Java程序设计(第3版)第四章——final修饰的方法和类
java·开发语言
摇滚侠14 小时前
云原生 Java 架构师的第一课 K8s+Docker+KubeSphere+DevOps 26-40
java·云原生·kubernetes