交換二叉樹中每個結點的左孩子和右孩子
跪大佬,我要當大佬。
我可真是五體投地,甘拜下風,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模組中的引用、父母和孩子
- 孩子們
- 二叉搜尋樹的第 k 個結點
- java小工具,使用Swing展示左樹右表結構Java
- 面試8:找二叉樹的下個結點面試二叉樹
- 現在的熊孩子
- C++ 左值引用和右值引用之間的轉換C++
- [資料結構] 樹、二叉樹、森林的轉換資料結構二叉樹
- 填充每個節點的下一個右側節點指標指標
- 左兒子和右兄弟
- 二叉樹的右檢視 (中等)二叉樹
- 吳尊想讓孩子來中國讀書 稱孩子們中文進步神速
- 【JavaScript】前端演算法題(重建二叉樹、反向輸出連結串列每個節點)JavaScript前端演算法二叉樹
- Varkey:全球1/4的父母每週花超7個小時幫助孩子學習
- 二分查詢的左閉右開和左閉右閉寫法
- 假設二叉樹中每個結點的值為單個字元, 設計一個演算法將一棵以二叉鏈方式儲存的二叉樹 b 轉換成對應的順序儲存結構 a。——含具體實現工程二叉樹字元演算法
- day 15|二叉樹part03|110.平衡二叉樹|257. 二叉樹的所有路徑|404.左葉子之和| 222.完全二叉樹的節點個數二叉樹
- 突然間給未來的孩子起了個名字
- 伊隆·馬斯克的 12 個孩子:關於他的孩子和他們的母親的一切馬斯克
- 二叉樹和森林轉換二叉樹
- leetcode 24 兩兩交換連結串列中的節點LeetCode
- 填充每個節點的下一個右側節點指標 II指標
- 資料結構中的樹(二叉樹、二叉搜尋樹、AVL樹)資料結構二叉樹
- Sell Cell:42%的孩子每週花在手機上的時間超過了30個小時
- 199. 二叉樹的右檢視二叉樹
- 左值、左值引用、右值、右值引用
- C++ 左值和右值C++
- JZ-062-二叉查詢樹的第 K 個結點
- 將每個元素替換為右側最大元素
- 116. 填充每個節點的下一個右側節點指標指標
- leetcode 24.兩兩交換連結串列中的節點LeetCode
- 24. 兩兩交換連結串列中的節點 (中等)
- LeetCode 24. 兩兩交換連結串列中的節點LeetCode
- 遊戲、家長和孩子們的溝通困境遊戲
- 程式碼隨想錄day15 || 110 平衡二叉樹,257 二叉樹所有路徑,404 左葉子之和,222 完全二叉樹節點個數二叉樹
- 孩子特有的純真