Leetcode 最小二叉树深度和删除数组重复元素
Number114 最小二叉树深度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Solution { public : int minDepth(TreeNode *root) { int depth=0; if (root==NULL) return 0; int left=minDepth(root->left); int right=minDepth(root->right); if (root->left==NULL&&root->right!=NULL) { depth=right+1; } else if (root->right==NULL&&root->left!=NULL) { depth=left+1; } else if (root->left==NULL&&root->right==NULL) depth=depth+1; else depth=left<right ? left+1 : right+1; return depth; } }; |
Number 80 删除数组重复元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | class Solution { public : int removeDuplicates( int A[], int n) { if (n==0) return 0; int i,j; int current=A[0]; int count=1; for (i=1,j=1;i<n;i++) { if (A[i]==current) { count++; if (count<=2) A[j++]=current; } if (A[i]!=current) { current=A[i]; A[j++]=current; count=1; } } return j; } }; |
Number 100 same tree
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public : bool isSameTree(TreeNode *p, TreeNode *q) { if (p==NULL&&q==NULL) return true ; if (p==NULL&&q!=NULL) return false ; if (p!=NULL&&q==NULL) return false ; if (p->val==q->val) { return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right); } else return false ; } }; |
Number 94 二叉树中序遍历
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | class Solution { public : vector< int > inorderTraversal(TreeNode *root) { vector< int > v; TreeNode *s[100]; int top=-1; if (root==NULL) return v; TreeNode *p=root; //s[++top]=p; while (p||top!=-1) { while (p) { s[++top]=p; p=p->left; } if (top!=-1) { p=s[top]; v.push_back(p->val); top--; p=p->right; } } return v; } }; |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步