交換二叉樹中每個結點的左孩子和右孩子
跪大佬,我要當大佬。
我可真是五體投地,甘拜下風,ttmd厲害了,給大佬跪了,我的榆木腦袋也許這輩子想不到大佬的想法,哭了哭了
-----(偷偷擦眼淚
上圖
由此可見,交換之後呢,動手寫一下,發現他們的中序序列是完全相反的啊,一個堆疊就完事了。
這種傳統思路也很好的,多學習學習啊!!!
7-8 交換二叉樹中每個結點的左孩子和右孩子 (30分)
以二叉連結串列作為二叉樹的儲存結構,交換二叉樹中每個結點的左孩子和右孩子。
輸入格式:
輸入二叉樹的先序序列。
提示:一棵二叉樹的先序序列是一個字串,若字元是‘#’,表示該二叉樹是空樹,否則該字元是相應結點的資料元素。
輸出格式:
輸出有兩行:
第一行是原二叉樹的中序遍歷序列;
第二行是交換後的二叉樹的中序遍歷序列。
輸入樣例:
ABC##DE#G##F###
輸出樣例:
CBEGDFA
AFDGEBC
?AC
#include<bits/stdc++.h>
using namespace std;
stack<char> s;
typedef struct node* tree;
struct node {
char data;
tree left;
tree right;
};
tree setTree() {
tree t=new node();
char ch;
cin>>ch;
if(ch!='#') {
t->data=ch;
t->left=setTree();
t->right=setTree();
} else
t=NULL;
return t;
}
void In(tree t) {//中序序列輸出
if(t==NULL)
return ;
In(t->left);
cout<<t->data;
s.push(t->data);
In(t->right);
}
int main() {
tree t=setTree();
In(t);
cout<<endl;
while(!s.empty()) {
cout<<s.top();
s.pop();
}
return 0;
}
相關文章
- 交換左右孩子-leetcode-226. 翻轉二叉樹LeetCode二叉樹
- 刷題系列 - 在二叉樹中,為每個節點關聯其右相鄰節點二叉樹
- Dill模組中的引用、父母和孩子
- 左值右值的一點總結
- SQL中的左連線和右連線SQL
- 伊隆·馬斯克的 12 個孩子:關於他的孩子和他們的母親的一切馬斯克
- 面試8:找二叉樹的下個結點面試二叉樹
- 360兒童手錶新品巴迪龍SE釋出 讓每個孩子都安全
- 二叉樹中最遠的兩個結點的距離二叉樹
- java小工具,使用Swing展示左樹右表結構Java
- 教孩子程式設計的 6 個小建議程式設計
- 二叉樹的右檢視 (中等)二叉樹
- 【JavaScript】前端演算法題(重建二叉樹、反向輸出連結串列每個節點)JavaScript前端演算法二叉樹
- 填充每個節點的下一個右側節點指標指標
- 二叉樹中兩個節點的最低公共祖先二叉樹
- 左兒子和右兄弟
- 遊戲、家長和孩子們的溝通困境遊戲
- 資料結構中的樹(二叉樹、二叉搜尋樹、AVL樹)資料結構二叉樹
- 《劍指offer》:[58]二叉樹的下一個結點二叉樹
- 二分查詢的左閉右開和左閉右閉寫法
- 【演算法】輸入一顆二元樹,從上往下按層列印樹的每個結點,同一層中按照從左往右的順序列印演算法
- 填充每個節點的下一個右側節點指標 II指標
- 孩子特有的純真
- 二叉樹兩個節點的公共節點二叉樹
- c++中的左值與右值C++
- 左連線和右連線
- C++ 左值和右值C++
- 困在手機遊戲裡的孩子遊戲
- iPad,孩子們的最愛iPad
- Varkey:全球1/4的父母每週花超7個小時幫助孩子學習
- Oracle的左連線和右連線Oracle
- day 15|二叉樹part03|110.平衡二叉樹|257. 二叉樹的所有路徑|404.左葉子之和| 222.完全二叉樹的節點個數二叉樹
- 孩子應該學習程式設計的 5 個理由程式設計
- 演算法題(三十五):二叉樹的下一個結點演算法二叉樹
- JZ-062-二叉查詢樹的第 K 個結點
- 二叉樹的子樹和子結構 c++二叉樹C++
- 求二叉樹的給定兩個結點之間的距離二叉樹
- 教孩子們程式設計程式設計