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

求解代码

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);
        }
相关推荐
J2虾虾6 分钟前
Springboot项目中循环依赖的问题
java·开发语言
weixin_704266058 分钟前
事务管理全解析:从ACID到Spring实现
java·数据库·spring
Barkamin12 分钟前
冒泡排序的简单实现
java·算法·排序算法
毕设源码-钟学长16 分钟前
【开题答辩全过程】以 基于Android的充电宝租赁管理软件的设计与实现为例,包含答辩的问题和答案
android
熙胤21 分钟前
springboot与springcloud对应版本
java·spring boot·spring cloud
Be for thing25 分钟前
Android 蓝牙 & WiFi 硬件原理 + 功耗与异常定位实战(手机 / 手表 / IoT 通用)
android·物联网·学习
J2虾虾26 分钟前
SpringBoot 中给 @Autowired 搭配 @Lazy
java·spring boot·后端
皙然34 分钟前
深入理解 Java HashSet
java·开发语言
00后程序员张43 分钟前
使用克魔助手(Keymob)查看 iOS 设备日志与崩溃报告
android·macos·ios·小程序·uni-app·cocoa·iphone
摇滚侠1 小时前
Java 项目教程《黑马商城-ElasticSearch 篇》,分布式架构项目,从开发到部署
java·分布式·elasticsearch