二叉树的下一个结点
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
解题思路:中序遍历:左根右
二叉树结点:
为空
为左子树,其下个结点为其父节点
为右子树,其下个节点为其父节点的父节点。。。直到找到父节点
对称二叉树
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *left; 5 struct TreeNode *right; 6 TreeNode(int x) : 7 val(x), left(NULL), right(NULL) { 8 } 9 }; 10 */ 11 class Solution { 12 public: 13 bool isSymmetrical(TreeNode* pRoot) 14 { 15 if(pRoot==nullptr) 16 return 1; 17 18 return(Symmetrical(pRoot->left,pRoot->right)); 19 20 } 21 22 bool Symmetrical(TreeNode* pRight, TreeNode* pLeft) 23 { 24 if((pRight==nullptr)&&(pLeft==nullptr)) return 1; 25 26 if((pRight!=nullptr)&&(pLeft!=nullptr)) 27 return((pRight->val==pLeft->val)&&Symmetrical(pLeft->left,pRight->right)&&Symmetrical(pLeft->right,pRight->left)); 28 29 30 return 0; 31 } 32 33 };