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

求解代码

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);
        }
相关推荐
阿丰资源20 小时前
基于Spring Boot的酒店客房管理系统
java·spring boot·后端
无籽西瓜a20 小时前
【西瓜带你学Kafka | 第八期】 Kafka的主从同步、消息可靠性、流处理与顺序消费(文含图解)
java·分布式·后端·kafka·消息队列·mq
布吉岛的石头20 小时前
Java 程序员第 18 阶段:实战Agent工作流:Java搭建自动化业务智能体
java·python·自动化
zzqssliu21 小时前
SpringBoot框架搭建跨境独立站|Taocarts代购系统订单模块深度开发
java·spring boot·后端
dinl_vin21 小时前
FastAPI 系列 ·(四):数据库集成——SQLAlchemy 2.0 异步 ORM 与 Alembic 迁移
java·数据库·fastapi
编码者卢布21 小时前
【Azure Service Bus】Azure Service Bus Java SDK 中 Token 刷新异常的排查思路
java·python·azure
lvronglee21 小时前
【数字图传第四步】Android App查看图传视频
android·音视频
兰令水21 小时前
topcode【随机算法题】【2026.5.20打卡-java版本】
java·开发语言·算法
90后的晨仔21 小时前
Android 程序入口与核心组件详解
android
AI瓦力21 小时前
技术分享 | 彻底解决图片“躺平”问题:Java 后端强制校准图片方向
java