回溯算法是什么?什么是决策树?什么是路径,选择列表,结束条件?前序遍历 中序遍历 后序遍历定义和区别?
Posted on 2020-12-11 15:11 许你星河万里 阅读(178) 评论(0) 收藏 举报回溯算法是什么?

我们把这种树形结构叫决策树
解决⼀个回溯问题,实际上就是⼀个决策树的遍历过程。
什么是路径,选择列表,结束条件?

[2] 就是「路径」,记录你已经做过的选 择; [1,3] 就是「选择列表」,表⽰你当前可以做出的选择;「结束条件」就是遍历到树的底层,在这⾥就是选择列表为空的时候。
前序遍历和后序遍历是什么?
void traverse(TreeNode root) { for (TreeNode child : root.childern) // 前序遍历需要的操作 traverse(child); // 后序遍历需要的操作 }
两个时间点而已。

前序遍历的代码在进⼊某⼀个节点之前的那个时间点执⾏,后序遍历代码在 离开某个节点之后的那个时间点执⾏。
回溯算法核心:
其核⼼就是 for 循环⾥⾯的递归,在递归调⽤之前「做选择」,在递归调⽤之后「撤销选择」,特别简单。
前序遍历
中序遍历
后序遍历
区别根节点被访问的顺序。(一直左右)

浙公网安备 33010602011771号