257. Binary Tree Paths
生活随笔
收集整理的這篇文章主要介紹了
257. Binary Tree Paths
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Given a binary tree, return all root-to-leaf paths.
For example, given the following binary tree:
?
1/ \ 2 3\5?
All root-to-leaf paths are:
["1->2->5", "1->3"]思路: dfs,搜索到leaf停下,存到res。我用的stringbuilder,在回溯的時候怎么變回到之前的狀態沒想出來。參考了discussion里的一種辦法,setlength。馬丹,差一點啊,看了答案心情舒暢多了。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ public class Solution {public List<String> binaryTreePaths(TreeNode root) {List<String> res=new ArrayList<String>();StringBuilder save=new StringBuilder();dps(root,res,save);return res;}public void dps(TreeNode root, List<String> res, StringBuilder sb){if(root==null){return;}int length=sb.length();if(root.left==null&&root.right==null){sb.append(root.val);res.add(sb.toString());sb.setLength(length);return;}sb.append(root.val);sb.append("->");dps(root.left,res,sb);dps(root.right,res,sb);sb.setLength(length);}}
?
多理解理解回溯的點,也就是return時候的條件。轉載于:https://www.cnblogs.com/Machelsky/p/5877959.html
總結
以上是生活随笔為你收集整理的257. Binary Tree Paths的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单的事件委托
- 下一篇: 微信公众号基本信息配置