网站搭建公司排行榜,网站建设合同拟写,wordpress wp_parse_args(),四川成都现在可以去吗538.把二叉搜索树转换为累加树 可以做#xff0c;主要还是分类讨论并找规律。
当前结点如果是左节点的话#xff0c;root.valroot.valpre.valdfs(root.right);
如果是右结点的话#xff0c;
root.valpre.val-preval-dfs(root.left);
都和前一个结点有关系#xff0c;如… 538.把二叉搜索树转换为累加树 可以做主要还是分类讨论并找规律。
当前结点如果是左节点的话root.valroot.valpre.valdfs(root.right);
如果是右结点的话
root.valpre.val-preval-dfs(root.left);
都和前一个结点有关系如果找不到那个万能公式的话就分类讨论多分几种情况。 class Solution { public TreeNode convertBST(TreeNode root) { dfs2(root,null,0,2); return root; } int dfs(TreeNode root){ //对整个树求和 if(rootnull) return 0; return root.valdfs(root.right)dfs(root.left); } void dfs2(TreeNode root,TreeNode pre,int preval,int flag){ // 左右节点分别考虑 if(rootnull) return; int rootvalroot.val; if(flag0) root.valroot.valpre.valdfs(root.right); else if(flag1) root.valpre.val-preval-dfs(root.left); else root.valdfs(root.right); dfs2(root.right,root,rootval,1); dfs2(root.left,root,rootval,0); } }