首页 > 其他分享 >538. 把二叉搜索树转换为累加树c

538. 把二叉搜索树转换为累加树c

时间:2024-03-07 15:45:02浏览次数:24  
标签:pre TreeNode struct val 二叉 累加 root order 538

右根左遍历就行。

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
void order(struct TreeNode* root,int * pre){
    if(!root) return;
    order(root->right,pre);
    root->val=root->val+*pre;
    *pre=root->val;
    order(root->left,pre);
}

struct TreeNode* convertBST(struct TreeNode* root) {
    int pre=0;
    order(root,&pre);   
    return root;
}

结果;

标签:pre,TreeNode,struct,val,二叉,累加,root,order,538
From: https://www.cnblogs.com/llllmz/p/18059053

相关文章

  • 108. 将有序数组转换为二叉搜索树c
    如果按一般思路建一个平衡二叉树,非常麻烦。但是二分查找树就一个平衡二叉树,所有构建二叉查找树就行。/***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/structTree......
  • 669. 修剪二叉搜索树c
    这题还是很难得。一看是想着当作普通二叉树所有节点都递归,但是很难做,难度很高。/***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/structTreeNode*preorde(structT......
  • 450. 删除二叉搜索树中的节点c
    这题特别好,和递归删除链表里的元素有异曲同工之妙/***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/structTreeNode*leftleave(structTreeNode*root){root=r......
  • 二叉树中的最大路径和
    124.二叉树中的最大路径和二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root......
  • 701. 二叉搜索树中的插入操作c
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/structTreeNode*insertIntoBST(structTreeNode*root,intval){if(!root){structTreeNode*......
  • 235. 二叉搜索树的最近公共祖先c
     /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/structTreeNode*preorder(structTreeNode*root,structTreeNode*p,structTreeNode*q){if(!root)r......
  • 236. 二叉树的最近公共祖先c
    思想就是层次遍历,然后判断每个节点是否为父节点、/***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/booljudge(structTreeNode*root,structTreeNode*q){if(......
  • 代码随想录算法训练营day14 | leetcode 144. 二叉树的前序遍历、145. 二叉树的后序遍
    目录题目链接:144.二叉树的前序遍历-简单题目链接:145.二叉树的后序遍历-简单题目链接:94.二叉树的中序遍历-简单递归三要素:确定递归函数的参数和返回值:确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数,并且还要明确每次递归的返回值是什么进而确定递归......
  • 530. 二叉搜索树的最小绝对差c
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/voidinorder(structTreeNode*root,int*t,int*pre){if(!root)return;inorder(root->left,t,pr......
  • 98. 验证二叉搜索树c
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/booljudge(structTreeNode*root,long*pre){if(!root)returntrue;boola=judge(root->left,......